public void testAlignHorizontallyRight2()

in designer/testSrc/com/android/tools/idea/uibuilder/scene/ScoutConnectArrangeTest1.java [93:327]


  public void testAlignHorizontallyRight2() {
    myScreen.get("@+id/textview2")
      .expectXml("<TextView\n" +
                 "    android:id=\"@+id/textview2\"\n" +
                 "    android:layout_width=\"200dp\"\n" +
                 "    android:layout_height=\"30dp\"/>");

    List<NlComponent> list = new ArrayList<>(); // testing passing in an empty selection does not crash
    list.add(myScreen.get("@+id/textview2").getComponent());
    boolean result;

    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectToParentTop,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectToParentBottom,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectToParentStart,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectToParentEnd,false);
    assertTrue(result);

    list.add(myScreen.get("@+id/textview3").getComponent());
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToTop,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToBottom,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToBottom,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToTop,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToStart,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToEnd,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToEnd,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToStart,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBaseLineToBaseLine,false);
    assertTrue(result);

    myScreen.get("@+id/textview2")
            .expectXml("<TextView\n" +
                       "    android:id=\"@+id/textview2\"\n" +
                       "    android:layout_width=\"200dp\"\n" +
                       "    android:layout_height=\"30dp\"/>");
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "    android:id=\"@+id/textview3\"\n" +
                       "    android:layout_width=\"200dp\"\n" +
                       "    android:layout_height=\"50dp\"/>");
    ScoutConnectArrange.connect(list, Scout.Connect.ConnectTopToTop,false,false);
    NlWriteCommandActionUtil
    .run(list, Scout.Arrange.ConnectTop.toString(), () -> list.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview2")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview2\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"30dp\"\n" +
                       "        app:layout_constraintTop_toTopOf=\"@+id/textview3\"\n" +
                       "        tools:layout_editor_absoluteX=\"200dp\" />");
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\"\n" +
                       "        tools:layout_editor_absoluteY=\"575dp\" />");
    ScoutConnectArrange.connect(list, Scout.Connect.ConnectStartToEnd,false,true);
    NlWriteCommandActionUtil
      .run(list, Scout.Arrange.ConnectTop.toString(), () -> list.forEach(component -> component.startAttributeTransaction().commit()));

    myScreen.get("@+id/textview2")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview2\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"30dp\"\n" +
                       "        app:layout_constraintStart_toEndOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintTop_toTopOf=\"@+id/textview3\" />");
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\"\n" +
                       "        tools:layout_editor_absoluteY=\"575dp\" />");

    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToTop,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToBottom,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToBottom,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToTop,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToStart,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToEnd,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToEnd,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToStart,false);
    assertTrue(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBaseLineToBaseLine,false);
    assertTrue(result);


    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToTop,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectTopToBottom,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToBottom,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBottomToTop,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToStart,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectStartToEnd,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToEnd,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectEndToStart,true);
    assertFalse(result);
    result = ScoutConnectArrange.connectCheck(list, Scout.Connect.ConnectBaseLineToBaseLine,true);
    assertFalse(result);

    ScoutConnectArrange.connect(list, Scout.Connect.ConnectBottomToBottom,false,true);
    NlWriteCommandActionUtil
      .run(list, Scout.Arrange.ConnectTop.toString(), () -> list.forEach(component -> component.startAttributeTransaction().commit()));

    myScreen.get("@+id/textview2")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview2\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"30dp\"\n" +
                       "        android:layout_marginBottom=\"60dp\"\n" +
                       "        app:layout_constraintBottom_toBottomOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintStart_toEndOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintTop_toTopOf=\"@+id/textview3\" />");
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\"\n" +
                       "        tools:layout_editor_absoluteY=\"575dp\" />");



    ScoutConnectArrange.connect(list, Scout.Connect.ConnectEndToEnd,false,true);
    NlWriteCommandActionUtil
      .run(list, Scout.Arrange.ConnectTop.toString(), () -> list.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview2")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview2\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"30dp\"\n" +
                       "        android:layout_marginEnd=\"125dp\"\n" +
                       "        android:layout_marginRight=\"125dp\"\n" +
                       "        android:layout_marginBottom=\"60dp\"\n" +
                       "        app:layout_constraintBottom_toBottomOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintEnd_toEndOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintStart_toEndOf=\"@+id/textview3\"\n" +
                       "        app:layout_constraintTop_toTopOf=\"@+id/textview3\" />");
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\"\n" +
                       "        tools:layout_editor_absoluteY=\"575dp\" />");

    List<NlComponent>  list2 = new ArrayList<>(); // testing passing in an empty selection does not crash
    list2.add(myScreen.get("@+id/textview4").getComponent());
    list2.add(myScreen.get("@+id/textview3").getComponent());


    ScoutConnectArrange.connect(list2, Scout.Connect.ConnectTopToBottom,true,true);
    NlWriteCommandActionUtil
      .run(list2, Scout.Arrange.ConnectTop.toString(), () -> list2.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        android:layout_marginTop=\"180dp\"\n" +
                       "        app:layout_constraintTop_toBottomOf=\"@+id/textview4\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\" />");


    ScoutConnectArrange.connect(list2, Scout.Connect.ConnectBottomToTop,true,true);
    NlWriteCommandActionUtil
      .run(list2, Scout.Arrange.ConnectTop.toString(), () -> list2.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        android:layout_marginTop=\"180dp\"\n" +
                       "        app:layout_constraintBottom_toTopOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintTop_toBottomOf=\"@+id/textview4\"\n" +
                       "        tools:layout_editor_absoluteX=\"325dp\" />");
    ScoutConnectArrange.connect(list2, Scout.Connect.ConnectStartToStart,true,true);
    NlWriteCommandActionUtil
      .run(list2, Scout.Arrange.ConnectTop.toString(), () -> list2.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        android:layout_marginStart=\"275dp\"\n" +
                       "        android:layout_marginLeft=\"275dp\"\n" +
                       "        android:layout_marginTop=\"180dp\"\n" +
                       "        app:layout_constraintBottom_toTopOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintStart_toStartOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintTop_toBottomOf=\"@+id/textview4\" />");
    ScoutConnectArrange.connect(list2, Scout.Connect.ConnectEndToStart,true,true);
    NlWriteCommandActionUtil
      .run(list2, Scout.Arrange.ConnectTop.toString(), () -> list2.forEach(component -> component.startAttributeTransaction().commit()));
    myScreen.get("@+id/textview3")
            .expectXml("<TextView\n" +
                       "        android:id=\"@+id/textview3\"\n" +
                       "        android:layout_width=\"200dp\"\n" +
                       "        android:layout_height=\"50dp\"\n" +
                       "        android:layout_marginStart=\"275dp\"\n" +
                       "        android:layout_marginLeft=\"275dp\"\n" +
                       "        android:layout_marginTop=\"180dp\"\n" +
                       "        app:layout_constraintBottom_toTopOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintEnd_toStartOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintStart_toStartOf=\"@+id/textview4\"\n" +
                       "        app:layout_constraintTop_toBottomOf=\"@+id/textview4\" />");



    buildScene();
  }