Tests that rows can be removed from Table, and that the selection is updated when removing selected rows.

An asterix (*) indicates a selected row; a hyphen (-) indicates a removed row.


== Running test suite: Table.RemoveRows
-- Running test case: Table.RemoveRow.NoneSelected
Given a Table with selected rows [], remove row 0.
PASS: Should remove row 0.

-- Running test case: Table.RemoveRow.Selected
Given a Table with selected rows [0], remove row 0.
Selection changed to [] before removing row 0.
PASS: Should remove row 0.

-- Running test case: Table.RemoveRow.PrecedingSelected
Given a Table with selected rows [1,3], remove row 0.
PASS: Should remove row 0.
PASS: Selected row indexes should be adjusted.

-- Running test case: Table.RemoveSelectedRows.Single.SelectFollowing
Given a Table with selected rows [0]:
 * Row 0
   Row 1
   Row 2
   Row 3
Selection changed before removing rows:
 - Row 0
 * Row 1
   Row 2
   Row 3
PASS: Should remove rows [0].

-- Running test case: Table.RemoveSelectedRows.Single.SelectPreceding
Given a Table with selected rows [3]:
   Row 0
   Row 1
   Row 2
 * Row 3
Selection changed before removing rows:
   Row 0
   Row 1
 * Row 2
 - Row 3
PASS: Should remove rows [3].

-- Running test case: Table.RemoveSelectedRows.Single.SelectPrecedingOverFollowing
Given a Table with selected rows [2]:
   Row 0
   Row 1
 * Row 2
   Row 3
Selection changed before removing rows:
   Row 0
 * Row 1
 - Row 2
   Row 3
PASS: Should remove rows [2].

-- Running test case: Table.RemoveSelectedRows.Multiple.SelectFollowing
Given a Table with selected rows [0,1]:
 * Row 0
 * Row 1
   Row 2
   Row 3
Selection changed before removing rows:
 - Row 0
 - Row 1
 * Row 2
   Row 3
PASS: Should remove rows [0,1].

-- Running test case: Table.RemoveSelectedRows.Multiple.SelectPreceding
Given a Table with selected rows [2,3]:
   Row 0
   Row 1
 * Row 2
 * Row 3
Selection changed before removing rows:
   Row 0
 * Row 1
 - Row 2
 - Row 3
PASS: Should remove rows [2,3].

-- Running test case: Table.RemoveSelectedRows.Multiple.SelectPrecedingOverFollowing
Given a Table with selected rows [1,2]:
   Row 0
 * Row 1
 * Row 2
   Row 3
Selection changed before removing rows:
 * Row 0
 - Row 1
 - Row 2
   Row 3
PASS: Should remove rows [1,2].

-- Running test case: Table.RemoveSelectedRows.Multiple.SelectPrecedingOverGap
Given a Table with selected rows [1,3]:
   Row 0
 * Row 1
   Row 2
 * Row 3
Selection changed before removing rows:
 * Row 0
 - Row 1
   Row 2
 - Row 3
PASS: Should remove rows [1,3].

-- Running test case: Table.RemoveSelectedRows.Multiple.SelectGapOverFollowing
Given a Table with selected rows [0,2]:
 * Row 0
   Row 1
 * Row 2
   Row 3
Selection changed before removing rows:
 - Row 0
 * Row 1
 - Row 2
   Row 3
PASS: Should remove rows [0,2].

-- Running test case: Table.RemoveRow.NotCached
Given a Table with selected rows [], remove row 999.
PASS: Should remove row 999.

