Skip to content

Commit bd04ddd

Browse files
committed
Update the tests for UiBinder use cases (applying property before attached).
1 parent 034df24 commit bd04ddd

17 files changed

+829
-194
lines changed

gwt-material/src/main/java/gwt/material/design/client/base/MaterialWidget.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ public boolean isEnabled() {
272272

273273
@Override
274274
public void setEnabled(boolean enabled) {
275-
getEnabledMixin().setEnabled(enabled);
275+
getEnabledMixin().setEnabled(this, enabled);
276276
}
277277

278278
@Override
@@ -698,6 +698,10 @@ public void setTruncate(boolean truncate) {
698698
getTruncateMixin().setOn(truncate);
699699
}
700700

701+
public boolean isTruncate() {
702+
return getTruncateMixin().isOn();
703+
}
704+
701705
@Override
702706
public void setBorder(String value) {
703707
getBorderMixin().setBorder(value);
@@ -914,7 +918,6 @@ protected void clearActiveClass(HasWidgets widget) {
914918
/**
915919
* Applies a CSS3 Transition property to this widget.
916920
*/
917-
918921
public void setTransition(TransitionConfig property) {
919922
Element target = getElement();
920923
if (property.getTarget() != null) {

gwt-material/src/main/java/gwt/material/design/client/base/mixin/EnabledMixin.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.google.gwt.user.client.ui.UIObject;
2525
import com.google.gwt.user.client.ui.Widget;
2626
import gwt.material.design.client.base.MaterialWidget;
27-
import gwt.material.design.client.base.helper.StyleHelper;
2827
import gwt.material.design.client.constants.CssName;
2928

3029
/**
@@ -36,6 +35,8 @@ public class EnabledMixin<T extends Widget & HasEnabled> extends AbstractMixin<T
3635

3736
private HandlerRegistration handler;
3837

38+
private boolean propagateToChildren;
39+
3940
public EnabledMixin(final T widget) {
4041
super(widget);
4142
}
@@ -74,13 +75,14 @@ public void setEnabled(boolean enabled) {
7475

7576
public void setEnabled(MaterialWidget widget, boolean enabled) {
7677
setEnabled(enabled);
77-
for (Widget child : widget.getChildren()) {
78-
if (child instanceof MaterialWidget) {
79-
((MaterialWidget) child).setEnabled(enabled);
80-
setEnabled((MaterialWidget) child, enabled);
81-
}
82-
else if(child instanceof HasEnabled) {
83-
((HasEnabled) child).setEnabled(enabled);
78+
79+
if(isPropagateToChildren()) {
80+
for (Widget child : widget.getChildren()) {
81+
if (child instanceof MaterialWidget) {
82+
((MaterialWidget) child).setEnabled(enabled);
83+
} else if (child instanceof HasEnabled) {
84+
((HasEnabled) child).setEnabled(enabled);
85+
}
8486
}
8587
}
8688
}
@@ -94,4 +96,12 @@ private void applyEnabled(boolean enabled, UIObject obj) {
9496
obj.getElement().setAttribute(DISABLED, "");
9597
}
9698
}
99+
100+
public boolean isPropagateToChildren() {
101+
return propagateToChildren;
102+
}
103+
104+
public void setPropagateToChildren(boolean propagateToChildren) {
105+
this.propagateToChildren = propagateToChildren;
106+
}
97107
}

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialCheckBox.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,8 @@ public class MaterialCheckBox extends BaseCheckBox implements HasGrid {
6363
private GridMixin<MaterialCheckBox> gridMixin;
6464
private ToggleStyleMixin<MaterialCheckBox> toggleOldMixin;
6565

66+
private CheckBoxType type;
67+
6668
public MaterialCheckBox() {
6769
super();
6870
}
@@ -144,6 +146,7 @@ public boolean isOld() {
144146
* Setting the type of Checkbox.
145147
*/
146148
public void setType(CheckBoxType type) {
149+
this.type = type;
147150
switch (type) {
148151
case FILLED:
149152
Element input = DOM.getChild(getElement(), 0);
@@ -158,6 +161,10 @@ public void setType(CheckBoxType type) {
158161
}
159162
}
160163

164+
public CheckBoxType getType() {
165+
return type;
166+
}
167+
161168
public GridMixin<MaterialCheckBox> getGridMixin() {
162169
if (gridMixin == null) {
163170
gridMixin = new GridMixin<>(this);

gwt-material/src/main/java/gwt/material/design/client/ui/MaterialSideNav.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ protected void load(boolean strict) {
286286
if (strict) {
287287
throw new IllegalArgumentException(
288288
"Could not setup MaterialSideNav please ensure you have " +
289-
"MaterialNavBar with an activator setup to match this widgets id.");
289+
"MaterialNavBar with an activator setup to match this widgets id.", ex);
290290
}
291291
}
292292

gwt-material/src/test/java/gwt/material/design/client/MaterialWidgetTestCase.java

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -333,16 +333,26 @@ public <H extends HasHandlers & IsWidget> void fireMouseOverEvent(H widget) {
333333
}
334334

335335
protected <H extends UIObject & HasEnabled> void checkEnabled(HasEnabled widget, H target) {
336+
checkEnabled(widget, target, true);
337+
}
338+
339+
protected <H extends UIObject & HasEnabled> void checkEnabled(HasEnabled widget, H target, boolean checkElement) {
336340
final Element element = target.getElement();
337-
assertFalse(element.hasClassName(CssName.DISABLED));
338-
assertFalse(element.hasAttribute(CssName.DISABLED));
341+
if(checkElement) {
342+
assertFalse(element.hasClassName(CssName.DISABLED));
343+
assertFalse(element.hasAttribute(CssName.DISABLED));
344+
}
339345
widget.setEnabled(true);
340-
assertFalse(element.hasClassName(CssName.DISABLED));
341-
assertFalse(element.hasAttribute(CssName.DISABLED));
346+
if(checkElement) {
347+
assertFalse(element.hasClassName(CssName.DISABLED));
348+
assertFalse(element.hasAttribute(CssName.DISABLED));
349+
}
342350
assertEquals(widget.isEnabled(), true);
343351
widget.setEnabled(false);
344-
assertTrue(element.hasClassName(CssName.DISABLED));
345-
assertTrue(element.hasAttribute(CssName.DISABLED));
352+
if(checkElement) {
353+
assertTrue(element.hasClassName(CssName.DISABLED));
354+
assertTrue(element.hasAttribute(CssName.DISABLED));
355+
}
346356
assertEquals(target.isEnabled(), false);
347357
}
348358

gwt-material/src/test/java/gwt/material/design/client/WidgetTestCase.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,20 @@ public T getWidget(boolean tryAttach) {
4242
if(widget == null) {
4343
widget = createWidget();
4444
}
45-
if(!neverAttach() && tryAttach && !widget.isAttached()) {
45+
if(tryAttach && !widget.isAttached()) {
4646
attachWidget();
4747
}
4848
return widget;
4949
}
5050

5151
protected void attachWidget() {
52-
RootPanel.get().add(widget);
53-
54-
if (unloadThenLoad()) {
55-
widget.removeFromParent();
52+
if(!neverAttach()) {
5653
RootPanel.get().add(widget);
54+
55+
if (unloadThenLoad()) {
56+
widget.removeFromParent();
57+
RootPanel.get().add(widget);
58+
}
5759
}
5860
}
5961

gwt-material/src/test/java/gwt/material/design/client/ui/MaterialCardTest.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,17 +44,27 @@ public void testInitialClasses() {
4444
}
4545

4646
public void testOrientation() {
47+
// UiBinder
4748
// given
48-
MaterialCard card = getWidget();
49+
MaterialCard card = getWidget(false);
4950

5051
// when / then
5152
card.setOrientation(Orientation.LANDSCAPE);
52-
assertTrue(card.getElement().hasClassName(Orientation.LANDSCAPE.getCssName()));
5353
assertEquals(Orientation.LANDSCAPE, card.getOrientation());
5454

5555
card.setOrientation(Orientation.PORTRAIT);
56-
assertTrue(card.getElement().hasClassName(Orientation.PORTRAIT.getCssName()));
5756
assertEquals(Orientation.PORTRAIT, card.getOrientation());
57+
58+
// Standard
59+
// given
60+
attachWidget();
61+
62+
// when / then
63+
card.setOrientation(Orientation.LANDSCAPE);
64+
assertTrue(card.getElement().hasClassName(Orientation.LANDSCAPE.getCssName()));
65+
66+
card.setOrientation(Orientation.PORTRAIT);
67+
assertTrue(card.getElement().hasClassName(Orientation.PORTRAIT.getCssName()));
5868
}
5969

6070
public void testStructure() {

gwt-material/src/test/java/gwt/material/design/client/ui/MaterialCheckBoxTest.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,26 @@ public void testValue() {
5757
}
5858

5959
public void testType() {
60+
// UiBinder
6061
// given
61-
MaterialCheckBox checkbox = getWidget();
62+
MaterialCheckBox widget = getWidget(false);
63+
64+
// when / then
65+
widget.setType(CheckBoxType.FILLED);
66+
assertEquals(CheckBoxType.FILLED, widget.getType());
67+
widget.setType(CheckBoxType.INTERMEDIATE);
68+
assertEquals(CheckBoxType.INTERMEDIATE, widget.getType());
69+
70+
// Standard
71+
// given
72+
attachWidget();
6273

6374
// when / then
64-
checkbox.setType(CheckBoxType.FILLED);
65-
Element cb = checkbox.getElement();
75+
widget.setType(CheckBoxType.FILLED);
76+
Element cb = widget.getElement();
6677
Element input = DOM.getChild(cb, 0);
6778
assertTrue(input.hasClassName(CssName.FILLED_IN));
68-
checkbox.setType(CheckBoxType.INTERMEDIATE);
69-
assertTrue(checkbox.getElement().hasClassName(CheckBoxType.INTERMEDIATE.getCssName() + "-checkbox"));
79+
widget.setType(CheckBoxType.INTERMEDIATE);
80+
assertTrue(widget.getElement().hasClassName(CheckBoxType.INTERMEDIATE.getCssName() + "-checkbox"));
7081
}
7182
}

gwt-material/src/test/java/gwt/material/design/client/ui/MaterialChipTest.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,9 @@ public void testStructure() {
6767
}
6868

6969
public void testLetter() {
70+
// UiBinder
7071
// given
71-
MaterialChip chip = getWidget();
72+
MaterialChip chip = getWidget(false);
7273

7374
// when / then
7475
chip.setLetter("A");
@@ -78,11 +79,21 @@ public void testLetter() {
7879
assertEquals("A", chip.getLetter());
7980
assertEquals(letter.getText(), chip.getLetter());
8081
chip.setLetterBackgroundColor(Color.AMBER);
81-
assertTrue(letter.getElement().hasClassName(Color.AMBER.getCssName()));
8282
assertEquals(Color.AMBER, letter.getBackgroundColor());
8383
chip.setLetterColor(Color.AMBER);
84-
assertTrue(letter.getElement().hasClassName(Color.AMBER.getCssName()));
8584
assertEquals(Color.AMBER, letter.getTextColor());
85+
86+
// Standard
87+
// given
88+
attachWidget();
89+
90+
// when / then
91+
chip.setLetter("A");
92+
letter = (Span) chip.getWidget(0);
93+
chip.setLetterBackgroundColor(Color.AMBER);
94+
assertTrue(letter.getElement().hasClassName(Color.AMBER.getCssName()));
95+
chip.setLetterColor(Color.AMBER);
96+
assertTrue(letter.getElement().hasClassName(Color.AMBER.getCssName()));
8697
}
8798

8899
public void testImage() {

0 commit comments

Comments
 (0)