Dropping a single component with colspan > 1x1 into 1x1 cell should be allowed
authorAlexander Lobas <Alexander.Lobas@jetbrains.com>
Wed, 1 Feb 2012 17:54:11 +0000 (21:54 +0400)
committerAlexander Lobas <Alexander.Lobas@jetbrains.com>
Wed, 1 Feb 2012 17:54:11 +0000 (21:54 +0400)
plugins/ui-designer/testSrc/com/intellij/uiDesigner/radComponents/GridInsertLocationTest.java

index 2649de5b479f2d701861829f398388f5ce5800fd..570404c04544eb0bc573062f70303cdf843a5d59 100644 (file)
@@ -111,6 +111,31 @@ public class GridInsertLocationTest extends TestCase {
   }
 
   public void testInsertGrowMultiple() {
+    setGridSize(4, 4);
+
+    // * . . .
+    // . . . .
+    // . . . .
+    // . . . *
+
+    insertComponent(0, 0, 1, 1);
+    insertComponent(3, 3, 1, 1);
+
+    // * . . .
+    // . . . .
+    // * . . .
+    // * . . *
+    RadComponent c1 = createComponent(0, 0, 2, 1);
+    RadComponent c2 = createComponent(0, 1, 1, 1);
+
+    GridInsertLocation location = new GridInsertLocation(myContainer, 1, 0, GridInsertMode.RowAfter);
+    DraggedComponentList dcl = DraggedComponentList.withComponents(c1, c2);
+    assertTrue(location.canDrop(dcl));
+    location.processDrop(null, new RadComponent[] {c1, c2}, null, dcl);
+    assertEquals(6, myManager.getGridRowCount(myContainer));
+  }
+
+  public void testInsertGrowMultiple1x1() {
     setGridSize(2, 2);
 
     // * .
@@ -130,10 +155,10 @@ public class GridInsertLocationTest extends TestCase {
     DraggedComponentList dcl = DraggedComponentList.withComponents(c1, c2);
     assertTrue(location.canDrop(dcl));
     location.processDrop(null, new RadComponent[] {c1, c2}, null, dcl);
-    assertEquals(4, myManager.getGridRowCount(myContainer));
+    assertEquals(3, myManager.getGridRowCount(myContainer));
   }
 
-  public void testInsertGrowSingle() {
+  public void testInsertGrowSingle1x1() {
     setGridSize(2, 2);
 
     // * .
@@ -148,7 +173,30 @@ public class GridInsertLocationTest extends TestCase {
     DraggedComponentList dcl = DraggedComponentList.withComponents(myDropComponent);
     assertTrue(location.canDrop(dcl));
     doDrop(location);
-    assertEquals(4, myManager.getGridRowCount(myContainer));
+    assertEquals(3, myManager.getGridRowCount(myContainer));
+    final RadComponent addedComponent = myContainer.getComponents()[2];
+    assertEquals(1, addedComponent.getConstraints().getRowSpan());
+    assertEquals(1, addedComponent.getConstraints().getColSpan());
+
+  }
+
+  public void testInsertGrowSingle() {
+    setGridSize(4, 4);
+
+    // * . . .
+    // . . . .
+    // . . . .
+    // . . . *
+
+    insertComponent(0, 0, 1, 1);
+    insertComponent(3, 3, 1, 1);
+
+    setComponentDimensions(myDropComponent, 0, 0, 2, 2);
+    GridInsertLocation location = new GridInsertLocation(myContainer, 1, 0, GridInsertMode.RowAfter);
+    DraggedComponentList dcl = DraggedComponentList.withComponents(myDropComponent);
+    assertTrue(location.canDrop(dcl));
+    doDrop(location);
+    assertEquals(6, myManager.getGridRowCount(myContainer));
     final RadComponent addedComponent = myContainer.getComponents()[2];
     assertEquals(2, addedComponent.getConstraints().getRowSpan());
     assertEquals(2, addedComponent.getConstraints().getColSpan());