Package com.googlecode.gwt.test

Source Code of com.googlecode.gwt.test.RadioButtonTest

package com.googlecode.gwt.test;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;

import org.junit.Test;

import com.google.gwt.dom.client.HeadingElement;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.RootPanel;
import com.googlecode.gwt.MockValueChangeHandler;
import com.googlecode.gwt.test.utils.events.Browser;

public class RadioButtonTest extends GwtTestTest {

   private boolean tested;

   @Test
   public void changeName() {
      // Arrange
      RadioButton rb0 = new RadioButton("myRadioGroup", "foo");
      RootPanel.get().add(rb0);
      MockValueChangeHandler<Boolean> rb0MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb0.addValueChangeHandler(rb0MockChangeHandler);

      RadioButton rb1 = new RadioButton("myRadioGroup", "bar");
      RootPanel.get().add(rb1);
      MockValueChangeHandler<Boolean> rb1MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb1.addValueChangeHandler(rb1MockChangeHandler);

      // Act 1
      rb0.setName("changedGroup");
      Browser.click(rb0);

      // Assert 1
      assertTrue(rb0.getValue());
      assertEquals(1, rb0MockChangeHandler.getCallCount());

      // Act 2
      rb1.setName("changedGroup");
      Browser.click(rb1);

      assertFalse(rb0.getValue());
      assertEquals(2, rb0MockChangeHandler.getCallCount());
      assertFalse(rb0MockChangeHandler.getLast());

      assertTrue(rb1.getValue());
      assertEquals(1, rb1MockChangeHandler.getCallCount());
      assertTrue(rb1MockChangeHandler.getLast());
   }

   @Test
   public void click_ClickHandler() {
      // Arrange
      tested = false;
      RadioButton r = new RadioButton("myRadioGroup", "foo");
      r.addClickHandler(new ClickHandler() {

         public void onClick(ClickEvent event) {
            tested = !tested;
         }

      });
      // Pre-Assert
      assertEquals(false, tested);

      // Act
      Browser.click(r);

      // Assert
      assertEquals(true, tested);
      assertEquals(true, r.getValue());
   }

   @Test
   public void click_Twice_ClickHandler() {
      // Arrange
      tested = false;
      RadioButton r1 = new RadioButton("myRadioGroup", "r1");
      RadioButton r2 = new RadioButton("myRadioGroup", "r2");
      r1.addClickHandler(new ClickHandler() {

         public void onClick(ClickEvent event) {
            tested = !tested;
         }

      });

      r2.addClickHandler(new ClickHandler() {

         public void onClick(ClickEvent event) {
            tested = !tested;
         }

      });
      // Pre-Assert
      assertEquals(false, tested);

      // Act
      Browser.click(r1);
      Browser.click(r1);

      // Assert
      assertEquals(false, tested);
      assertEquals(true, r1.getValue());
   }

   @Test
   public void clickNotDetachedRadioButton() {
      // Arrange
      RadioButton rb0 = new RadioButton("myRadioGroup", "foo");
      MockValueChangeHandler<Boolean> rb0MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb0.addValueChangeHandler(rb0MockChangeHandler);

      RadioButton rb1 = new RadioButton("myRadioGroup", "bar");
      MockValueChangeHandler<Boolean> rb1MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb1.addValueChangeHandler(rb1MockChangeHandler);

      // Act
      Browser.click(rb0);
      Browser.click(rb1);

      // Assert
      assertTrue(rb0.getValue());
      assertEquals(1, rb0MockChangeHandler.getCallCount());
      assertTrue(rb1.getValue());
      assertEquals(1, rb1MockChangeHandler.getCallCount());
   }

   @Test
   public void clickOnDetachedRadionButton() {
      // Arrange
      RadioButton rb0 = new RadioButton("myRadioGroup", "foo");
      rb0.setValue(true);
      RootPanel.get().add(rb0);
      MockValueChangeHandler<Boolean> rb0MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb0.addValueChangeHandler(rb0MockChangeHandler);

      RadioButton rb1 = new RadioButton("myRadioGroup", "bar");
      RootPanel.get().add(rb1);
      MockValueChangeHandler<Boolean> rb1MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb1.addValueChangeHandler(rb1MockChangeHandler);

      // Pre-Assert
      assertTrue(rb0.getValue());
      assertEquals(0, rb0MockChangeHandler.getCallCount());
      assertFalse(rb1.getValue());
      assertEquals(0, rb1MockChangeHandler.getCallCount());

      // Act
      RootPanel.get().remove(rb1);
      Browser.click(rb1);

      // Assert
      assertTrue(rb1.getValue());
      assertEquals(1, rb1MockChangeHandler.getCallCount());
      assertTrue(rb0.getValue());
      assertEquals(0, rb0MockChangeHandler.getCallCount());
   }

   @Test
   public void html() {
      // Arrange
      RadioButton rb = new RadioButton("myRadioGroup", "<h1>foo</h1>", true);
      // Pre-Assert
      assertEquals("<h1>foo</h1>", rb.getHTML());

      // Act
      rb.setHTML("<h1>test</h1>");

      // Assert
      assertEquals("<h1>test</h1>", rb.getHTML());
      assertEquals(1, rb.getElement().getChild(1).getChildCount());
      HeadingElement h1 = rb.getElement().getChild(1).getChild(0).cast();
      assertEquals("H1", h1.getTagName());
      assertEquals("test", h1.getInnerText());
   }

   @Test
   public void name() {
      // Arrange
      RadioButton rb = new RadioButton("myRadioGroup", "foo");
      // Pre-Assert
      assertEquals("myRadioGroup", rb.getName());

      // Act
      rb.setName("name");

      // Assert
      assertEquals("name", rb.getName());
   }

   @Test
   public void radioButton_Group() {
      // Arrange
      RadioButton rb0 = new RadioButton("myRadioGroup", "foo");
      RootPanel.get().add(rb0);
      MockValueChangeHandler<Boolean> rb0MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb0.addValueChangeHandler(rb0MockChangeHandler);

      RadioButton rb1 = new RadioButton("myRadioGroup", "bar");
      RootPanel.get().add(rb1);
      MockValueChangeHandler<Boolean> rb1MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb1.addValueChangeHandler(rb1MockChangeHandler);

      RadioButton rb2 = new RadioButton("myRadioGroup", "baz");
      RootPanel.get().add(rb2);
      MockValueChangeHandler<Boolean> rb2MockChangeHandler = new MockValueChangeHandler<Boolean>();
      rb2.addValueChangeHandler(rb2MockChangeHandler);

      // Act 1
      Browser.click(rb1);

      // Assert 1
      assertEquals(false, rb0.getValue());
      assertEquals(0, rb0MockChangeHandler.getCallCount());

      assertEquals(true, rb1.getValue());
      assertEquals(1, rb1MockChangeHandler.getCallCount());
      assertTrue(rb1MockChangeHandler.getLast());

      assertEquals(false, rb2.getValue());
      assertEquals(0, rb2MockChangeHandler.getCallCount());

      // Act 2
      Browser.click(rb2);

      // Assert 2
      assertEquals(false, rb0.getValue());
      assertEquals(0, rb0MockChangeHandler.getCallCount());

      assertEquals(false, rb1.getValue());
      assertEquals(2, rb1MockChangeHandler.getCallCount());
      assertFalse(rb1MockChangeHandler.getLast());

      assertEquals(true, rb2.getValue());
      assertEquals(1, rb2MockChangeHandler.getCallCount());
      assertTrue(rb2MockChangeHandler.getLast());
   }

   @Test
   public void text() {
      // Arrange
      RadioButton rb = new RadioButton("myRadioGroup", "foo");
      // Pre-Assert
      assertEquals("foo", rb.getText());

      // Act
      rb.setText("text");

      // Assert
      assertEquals("text", rb.getText());
   }

   @Test
   public void title() {
      // Arrange
      RadioButton rb = new RadioButton("myRadioGroup", "foo");
      // Pre-Assert
      assertEquals("", rb.getTitle());

      // Act
      rb.setTitle("title");

      // Assert
      assertEquals("title", rb.getTitle());
   }

   @Test
   public void visible() {
      // Arrange
      RadioButton rb = new RadioButton("myRadioGroup", "foo");
      // Pre-Assert
      assertEquals(true, rb.isVisible());

      // Act
      rb.setVisible(false);

      // Assert
      assertEquals(false, rb.isVisible());
   }

}
TOP

Related Classes of com.googlecode.gwt.test.RadioButtonTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.