Goktug Gokdogan has uploaded a new change for review.

  https://gwt-review.googlesource.com/3501


Change subject: Adds Element#toggleClassName.
......................................................................

Adds Element#toggleClassName.

Change-Id: I1b2a507d5ee8482a91aae28c9dc9a6b6826afb2f
---
M user/src/com/google/gwt/dom/client/Element.java
M user/test/com/google/gwt/dom/client/ElementTest.java
2 files changed, 46 insertions(+), 8 deletions(-)



diff --git a/user/src/com/google/gwt/dom/client/Element.java b/user/src/com/google/gwt/dom/client/Element.java
index c801f5d..6232db6 100644
--- a/user/src/com/google/gwt/dom/client/Element.java
+++ b/user/src/com/google/gwt/dom/client/Element.java
@@ -595,6 +595,18 @@
   }

   /**
+   * Add the class name if it doesn't exist or removes it if does.
+   *
+   * @param className the class name to be toggled
+   */
+  public final void toggleClassName(String className) {
+    boolean added = addClassName(className);
+    if (!added) {
+      removeClassName(className);
+    }
+  }
+
+  /**
    * Replace one class name with another.
    *
    * @param oldClassName the class name to be replaced
diff --git a/user/test/com/google/gwt/dom/client/ElementTest.java b/user/test/com/google/gwt/dom/client/ElementTest.java
index 911d788..c4a2acf 100644
--- a/user/test/com/google/gwt/dom/client/ElementTest.java
+++ b/user/test/com/google/gwt/dom/client/ElementTest.java
@@ -34,11 +34,9 @@
     return "com.google.gwt.dom.DOMTest";
   }

-  public void testAddRemoveReplaceHasClassName() {
+  public void testAddClassName() {
     DivElement div = Document.get().createDivElement();
-
     div.setClassName("foo");
-    assertEquals("foo", div.getClassName());

     assertTrue(div.addClassName("bar"));
     assertEquals("foo bar", div.getClassName());
@@ -48,12 +46,13 @@

     assertFalse(div.addClassName("baz"));
     assertEquals("foo bar baz", div.getClassName());
+  }

-    div.replaceClassName("bar", "tintin");
-    assertTrue(div.getClassName().contains("tintin"));
-    assertFalse(div.getClassName().contains("bar"));
+  public void testRemoveClassName() {
+    DivElement div = Document.get().createDivElement();
+    div.setClassName("foo bar baz");

-    assertTrue(div.removeClassName("tintin"));
+    assertTrue(div.removeClassName("bar"));
     assertEquals("foo baz", div.getClassName());

     assertFalse(div.removeClassName("bar"));
@@ -64,15 +63,42 @@

     assertTrue(div.removeClassName("foo"));
     assertEquals("", div.getClassName());
+  }

+  public void testHasClassName() {
+    DivElement div = Document.get().createDivElement();
     div.setClassName("foo bar");
+
     assertTrue(div.hasClassName("bar"));
     assertTrue(div.hasClassName("foo"));
-    div.removeClassName("foo");
+
+    div.setClassName("bar");
     assertFalse(div.hasClassName("foo"));
     assertTrue(div.hasClassName("bar"));
   }

+  public void testToggleClassName() {
+    DivElement div = Document.get().createDivElement();
+    div.setClassName("foo bar baz");
+
+    div.toggleClassName("bar");
+    assertEquals("foo baz", div.getClassName());
+
+    div.toggleClassName("bar");
+    assertEquals("foo baz bar", div.getClassName());
+  }
+
+  public void testReplaceClassName() {
+    DivElement div = Document.get().createDivElement();
+    div.setClassName("foo bar baz");
+
+    div.replaceClassName("bar", "tintin");
+    assertEquals("foo baz tintin", div.getClassName());
+
+    div.replaceClassName("bar", "tintin2");
+    assertEquals("foo baz tintin tintin2", div.getClassName());
+  }
+
   public void testIndexOfName() {
     assertEquals(-1, Element.indexOfName("", "foo"));


--
To view, visit https://gwt-review.googlesource.com/3501
To unsubscribe, visit https://gwt-review.googlesource.com/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I1b2a507d5ee8482a91aae28c9dc9a6b6826afb2f
Gerrit-PatchSet: 1
Gerrit-Project: gwt
Gerrit-Branch: master
Gerrit-Owner: Goktug Gokdogan <[email protected]>

--
http://groups.google.com/group/Google-Web-Toolkit-Contributors
--- You received this message because you are subscribed to the Google Groups "GWT Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to