Mini Order Book UI Test

MiniOB opens with middle click
  Place a couple limit orders at a specific price in the ladder
  Middle click on the badge
  The Mini OB should open
    Verify that miniob shows working orders for your desired security and price
  
Verify MiniOB closes by each of the following
	Cancel the last working order that is displayed
	Press the escape key while the qty and price are not currently being edited
	Click outside of the miniob popup window

Cancel button
	Verify that pressing the cancel button for a given order row actually cancels that order (comparing against qty and/or time may be helpful here since we do not display order ids in miniob)

Row edit mode behavior
	Click a miniob row to put the row in edit mode
	  The row's background color should change to reflect it is the currently selected row
	  The quantity and price cells should present text boxes to reflect they are editable
	  The checkmark button should remain disabled, both visually and functionally 
		-- Text Box Edit Mode behavior
	    If your mouse is over either the quantity or price cell when the row is put into edit mode, the current value of the textbox should be selected so that it can be immediately typed over with the keyboard.
		Scrolling the mousewheel while over the textbox should increment and decrement qty and price (according to tick size) appropriately
			When the original value of a text box has changed, the green arrow to the right will present a green background color and white foreground color
		Pressing the up/down arrow keys should increment and decrement qty and price (according to tick size) appropriately
			ibid
		Pressing the enter key should commit your current change(s) and take the row out of edit mode
			The MiniOB should remain open after such an operation
			The qty field should update to reflect the new quantity
			If the price was changed, that order should no longer be visible since it's now working at a different level
		Pressing the escape key while the cursor is in an edited textbox will restore the original value
			If only 1 textbox had a pending edit that was reverted, the check button should go back to a disabled state
		Pressing the tab key while in edit mode should cycle between editing the Qty and Price fields
			Once a change is pending, the tab key will extend the tab cycle to the check button as well
		If a new row is selected while the current row's pending change hasn't yet been committed, the qty and/or price textboxes for the original row should *remain* in edit mode and the check button should remain enabled
			Confirm that if you only have a pending change in the qty textbox and select a new row, only the qty textbox from the original row remains in edit mode
			Repeat for price
			Repeat for both
			Verify that pressing enter and/or clicking the check button only commits the current row
	Clicking the update button will put the row in edit mode and bring up an additonal popup that will also allow for price and size modifications (update is only enabled for algo orders)
		Change the qty in the update popup and verify the row's qty textbox updates to reflect the changed-to value and that the the check button is still disabled (i.e. the Update popup has committed the change already, so there is *not* any additional pending change)
		Change the price in the update popup and the row will disappear from the miniob since the order is now at a different price

A(attach)/D(etach) buttons
	Click on the A button brings and bring up the attach popup
		Attach a limit to an IB
		Verify the limit row's attach button has changed to a detach button
		Verify the limit row is now a child to an IB order row
	Click on detach button on the limit order
		Verify the limit row's detach button has now changed to an attach
		Verify the limit row is no longer a child to the IB
		Verify the IB order is now canceled

Multi-selection specific tests
------------------------------

Prerequisites
	Place 10 1-lots at a specific price in the ladder
	Have the mini ob open

	Cancel
	------
	Select any 2 rows by however you feel like it - click and drag, ctrl + click, clicking on checkbox column
	Note the rows you have chosen, perhaps by time
	Click the red cancel icon and the your selected orders should be cancelled
	
	Attach
	------
	Select any 2 rows
	Click the attach icon and then OK to attach to an IB
		If you're feeling adventurous, attach to a different Algo
	The following should happen to your selected rows:
		Update buttons should be visible
		The black attach icon should change to the red detach icon
		The root algo column should reflect IB (the root algo badge as well)

	Detach
	------
	Select the previously attached rows from our prior attach step
	Click the detach icon
	The following should happen to your selected rows:
		Update buttons should disappear
		The red detach icon should change to the black attach icon
		The root algo column should reflect a standard Limit(the root algo badge as well)
	For extra credit, repeat the detach step here but also include some non-attached rows as well

	Update
	------
	Perform the following WITHOUT closing the mini ob:

	Attach an IB with show qty 1 to any 2 rows
	Click update (...) button, modify the show quantity to 2, and hit ok
	Uncheck one of the selected rows
	Hit the update button in the currently selected row and verify the show quantity reads 2, hit cancel

	Uncheck your current row, so there should be no rows currently selected

	Hit the update button in the *other* row and verify the show quantity reads 2 there as well, now change the show quantity to 3
	Uncheck your current row
	Hit the update button in the *other* row and verify the show quantity *still* reads 2.

	Check both rows and hit the update button
	Show quantity should display as '-' signifying that the 2 rows have differing show quantities

	Uncheck all rows
	Select one of the currently IB-controlled rows and a regular limit order and hit the update button
		You should see the param popup effectively display as empty as these are incompatible order types selected
	Cancel to return back to mini ob

	Select All header checkbox
	---------------------------
	
		Intro
		----
		The mini-ob has a select-all control in the CheckBox columns header. This method of selecting all is unique in that it implies row selection over rows that have never been scrolled into view.
		
		Prerequisites
		---
		Place 50 1-lots at the same (side,price) in the ladder
		
		Misc functionality
		---
		Check the check all header box and observe that all rows are selected; scroll the grid to confirm
		Check the check all header again to uncheck all rows; scroll the grid to confirm
		Check the check all header again to select all and then unselect 1 row; observe that the check in the header is no longer there
		Check the previously unchecked row; observe the header checkbox is now checked again
		
		Cancel
		---
		Check the check all header box
		Without scrolling the grid, hit the cancel button in one of the selected rows
		
		You should see the miniob progressively contain less rows and eventually close as eventually all rows are cancelled.
		
		Attach
		---
		Perform prerequisites step
		Check the check all header box
		Without scrolling the grid, hit the attach button in one of the selected rows and attach to an IB
		
		You may now scroll the grid and confirm that all the attach (black) buttons have changed to detach (red) buttons
		
		Detach
		---
		If you still have the mini-ob open from the previous step, go ahead and close it and reopen it
		Check the check all header box
		Without scrolling the grid, hit the detach button in one of the selected rows
		
		You may now scroll the grid and confirm that all the detach (red) buttons have changed to attach (black) buttons
		
		Update
		---
		Get a regular OB open as it will allow for easier checking of algo parameters (right-hand section of OB)
		
		If you still have the mini-ob open from the previous step, go ahead and close it and reopen it
		Perform Attach step
		Without scrolling the grid, hit the update button in one of the selected rows
		Change the IB show quantity parameter from 1 to 23 and click OK
		
		Peruse over all appropriate rows in your OB and confirm the show quantity has been changed to 23
		
FIN