Author: [EMAIL PROTECTED]
Date: Wed Dec  3 17:53:46 2008
New Revision: 4245

Modified:
     
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DatePicker.java
     
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DefaultCalendarView.java
     
branches/1_6_datepicker/user/test/com/google/gwt/user/client/ui/DatePickerTest.java

Log:
Renames some methods to reduce the confusion between global and not
global styles.  Also fixes various varargs methods, which weren't
really working.

We now have styles (formerly global styles) and transient styles, the
latter of which can only be applied to visible dates. The transient word
appears in the former setEnabled method as well, for consistency.

Removes separate methods for removing global and transient styles, as
the former method would always remove the transient styles anyway, and
it seems very unlikely that a client will use the same style name for
both a transient and permanent date style.

Adds unit tests for styles and enabling.

TBR: ecc
submitter: rjrjr



Modified:  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DatePicker.java
==============================================================================
---  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DatePicker.java
   
(original)
+++  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DatePicker.java
   
Wed Dec  3 17:53:46 2008
@@ -31,7 +31,6 @@

  import java.util.Date;
  import java.util.HashMap;
-import java.util.Iterator;
  import java.util.Map;

  /**
@@ -211,14 +210,13 @@
            info.put(key, current + styleName);
          }
        } else {
-        assert current != null : "Removing style " + styleName + " from  
date "
-            + d + " but the style name wasn't there";
-
-        String newValue = current.replaceAll(styleName, "");
-        if (newValue.trim().length() == 0) {
-          info.remove(key);
-        } else {
-          info.put(key, newValue);
+        if (current != null) {
+          String newValue = current.replaceAll(styleName, "");
+          if (newValue.trim().length() == 0) {
+            info.remove(key);
+          } else {
+            info.put(key, newValue);
+          }
          }
        }
      }
@@ -267,31 +265,17 @@
      this.setup();

      setCurrentMonth(new Date());
-    addGlobalStyleToDate(css().dayIsToday(), new Date());
-  }
-
-  /**
-   * Globally adds a style name to a date. i.e. the style name is  
associated
-   * with the date each time it is rendered.
-   *
-   * @param styleName style name
-   * @param date date
-   */
-  public void addGlobalStyleToDate(String styleName, Date date) {
-    styler.setStyleName(date, styleName, true);
-    if (isDateVisible(date)) {
-      getView().addStyleToDate(styleName, date);
-    }
+    addStyleToDates(css().dayIsToday(), new Date());
    }

    public HandlerRegistration addHighlightHandler(HighlightHandler<Date>  
handler) {
      return addHandler(handler, HighlightEvent.getType());
    }
-
+
    public HandlerRegistration addShowRangeHandler(ShowRangeHandler<Date>  
handler) {
      return addHandler(handler, ShowRangeEvent.getType());
    }
-
+
    /**
     * Adds a show range handler and immediately activate the handler on the
     * current view.
@@ -309,35 +293,63 @@
    }

    /**
-   * Shows the given style name on the specified date. This is only set  
until
-   * the next time the DatePicker is refreshed.
-   *
-   * @param styleName style name
-   * @param date visible date
-   * @param moreDates optional visible dates
+   * Add a style name to the given dates.
     */
-  public final void addStyleToVisibleDates(String styleName, Date date,
-      Date... moreDates) {
-    assert (assertVisible(date, moreDates));
+  public void addStyleToDates(String styleName, Date date) {
+    styler.setStyleName(date, styleName, true);
+    if (isDateVisible(date)) {
+      getView().addStyleToDate(styleName, date);
+    }
+  }
+
+  /**
+   * Add a style name to the given dates.
+   */
+  public void addStyleToDates(String styleName, Date date, Date...  
moreDates) {
+    addStyleToDates(styleName, date);
+    for (Date d : moreDates) {
+      addStyleToDates(styleName, d);
+    }
+  }
+
+  /**
+   * Add a style name to the given dates.
+   */
+  public void addStyleToDates(String styleName, Iterable<Date> dates) {
+    for (Date d : dates) {
+      addStyleToDates(styleName, d);
+    }
+  }
+
+  /**
+   * Adds the given style name to the specified dates, which must be  
visible.
+   * This is only set until the next time the DatePicker is refreshed.
+   */
+  public void addTransientStyleToVisibleDates(String styleName, Date date)  
{
+    assert isDateVisible(date) : date + " must be visible";
      getView().addStyleToDate(styleName, date);
-    if (moreDates != null) {
-      for (Date d : moreDates) {
-        getView().addStyleToDate(styleName, d);
-      }
+  }
+
+  /**
+   * Adds the given style name to the specified dates, which must be  
visible.
+   * This is only set until the next time the DatePicker is refreshed.
+   */
+  public final void addTransientStyleToVisibleDates(String styleName, Date  
date,
+      Date... moreDates) {
+    addTransientStyleToVisibleDates(styleName, date);
+    for (Date d : moreDates) {
+      addTransientStyleToVisibleDates(styleName, d);
      }
    }

    /**
-   * Adds a style name on a set of currently visible dates. This is only  
set
-   * until the next time the DatePicker is refreshed.
-   *
-   * @param styleName style name to remove
-   * @param visibleDates dates that will have the supplied style removed
+   * Adds the given style name to the specified dates, which must be  
visible.
+   * This is only set until the next time the DatePicker is refreshed.
     */
-  public final void addStyleToVisibleDates(String styleName,
+  public final void addTransientStyleToVisibleDates(String styleName,
        Iterable<Date> visibleDates) {
-    for (Date date : visibleDates) {
-      getView().addStyleToDate(styleName, date);
+    for (Date d : visibleDates) {
+      addTransientStyleToVisibleDates(styleName, d);
      }
    }

@@ -370,16 +382,6 @@
    }

    /**
-   * Gets the global style name associated with a date.
-   *
-   * @param date the date
-   * @return the styles associated with this date
-   */
-  public String getGlobalStyleOfDate(Date date) {
-    return styler.getStyleName(date);
-  }
-
-  /**
     * Gets the highlighted date (the one the mouse is hovering over), if  
any.
     *
     * @return the highlighted date
@@ -399,6 +401,17 @@
    }

    /**
+   * Gets the style associated with a date (does not include styles
+   * set via [EMAIL PROTECTED] #addTransientStyleToVisibleDate}).
+   *
+   * @param date the date
+   * @return the styles associated with this date
+   */
+  public String getStyleOfDate(Date date) {
+    return styler.getStyleName(date);
+  }
+
+  /**
     * Returns the selected date, or null if none is selected.
     *
     * @return the selected date, or null
@@ -432,12 +445,9 @@
    }

    /**
-   * Globally removes a style from a date.
-   *
-   * @param styleName style name
-   * @param date date
+   * Removes the styleName from the given dates (even if it is transient).
     */
-  public void removeGlobalStyleFromDate(String styleName, Date date) {
+  public void removeStyleFromDates(String styleName, Date date) {
      styler.setStyleName(date, styleName, false);
      if (isDateVisible(date)) {
        getView().removeStyleFromDate(styleName, date);
@@ -445,33 +455,21 @@
    }

    /**
-   * Removes a style name from multiple visible dates.
-   *
-   * @param styleName style name to remove
-   * @param date a visible date
-   * @param moreDates optional additional visible dates
+   * Removes the styleName from the given dates (even if it is transient).
     */
-  public final void removeStyleFromVisibleDates(String styleName, Date  
date,
-      Date... moreDates) {
-    assert (isDateVisible(date)) : date + " should be visible";
-    getView().removeStyleFromDate(styleName, date);
+  public void removeStyleFromDates(String styleName, Date date, Date...  
moreDates) {
+    removeStyleFromDates(styleName, date);
      for (Date d : moreDates) {
-      getView().removeStyleFromDate(styleName, d);
+      removeStyleFromDates(styleName, d);
      }
    }

    /**
-   * Removes a style name from multiple visible dates.
-   *
-   * @param styleName style name to remove
-   * @param dates dates that will have the supplied style removed
+   * Removes the styleName from the given dates (even if it is transient).
     */
-  public final void removeStyleFromVisibleDates(String styleName,
-      Iterator<Date> dates) {
-    while (dates.hasNext()) {
-      Date date = dates.next();
-      assert (isDateVisible(date)) : date + " should be visible";
-      getView().removeStyleFromDate(styleName, date);
+  public void removeStyleFromDates(String styleName, Iterable<Date> dates)  
{
+    for (Date d : dates) {
+      removeStyleFromDates(styleName, d);
      }
    }

@@ -492,48 +490,44 @@
    }

    /**
+   * Sets the date picker style name.
+   */
+  @Override
+  public void setStyleName(String styleName) {
+    css = new StandardCss(styleName, "datePicker");
+    super.setStyleName(styleName);
+  }
+
+  /**
     * Sets a visible date to be enabled or disabled. This is only set until  
the
     * next time the DatePicker is refreshed.
-   *
-   * @param enabled is enabled
-   * @param date the date
-   * @param moreDates optional dates
     */
-  public final void setEnabledOnVisibleDates(boolean enabled, Date date,
-      Date... moreDates) {
-    assert assertVisible(date, moreDates);
+  public final void setTransientEnabledOnVisibleDates(boolean enabled,  
Date date) {
+    assert isDateVisible(date) : date + " must be visible";
      getView().setEnabledOnDate(enabled, date);
-    if (moreDates != null) {
-      for (Date d : moreDates) {
-        getView().setEnabledOnDate(enabled, d);
-      }
-    }
    }

    /**
-   * Sets a group of visible dates to be enabled or disabled. This is only  
set
-   * until the next time the DatePicker is refreshed.
-   *
-   * @param enabled is enabled
-   * @param dates the dates
+   * Sets a visible date to be enabled or disabled. This is only set until  
the
+   * next time the DatePicker is refreshed.
     */
-  public final void setEnabledOnVisibleDates(boolean enabled,
-      Iterable<Date> dates) {
-    CalendarView r = getView();
-    for (Date date : dates) {
-      assert isDateVisible(date) : date
-          + " cannot be enabled or disabled as it is not visible";
-      r.setEnabledOnDate(enabled, date);
+  public final void setTransientEnabledOnVisibleDates(boolean enabled,
+      Date date, Date... moreDates) {
+    setTransientEnabledOnVisibleDates(enabled, date);
+    for (Date d : moreDates) {
+      setTransientEnabledOnVisibleDates(enabled, d);
      }
    }

    /**
-   * Sets the date picker style name.
+   * Sets a group of visible dates to be enabled or disabled. This is only  
set
+   * until the next time the DatePicker is refreshed.
     */
-  @Override
-  public void setStyleName(String styleName) {
-    css = new StandardCss(styleName, "datePicker");
-    super.setStyleName(styleName);
+  public final void setTransientEnabledOnVisibleDates(boolean enabled,
+      Iterable<Date> dates) {
+    for (Date d : dates) {
+      setTransientEnabledOnVisibleDates(enabled, d);
+    }
    }

    /**
@@ -555,12 +549,12 @@
      Date oldValue = value;

      if (oldValue != null) {
-      removeGlobalStyleFromDate(css().dayIsValue(), oldValue);
+      removeStyleFromDates(css().dayIsValue(), oldValue);
      }

      value = CalendarUtil.copyDate(newValue);
      if (value != null) {
-      addGlobalStyleToDate(css().dayIsValue(), value);
+      addStyleToDates(css().dayIsValue(), value);
      }
      if (fireEvents) {
        ValueChangeEvent.fireIfNotEqual(this, oldValue, newValue);
@@ -640,15 +634,4 @@
      this.highlighted = highlighted;
      HighlightEvent.fire(this, highlighted);
    }
-
-  private boolean assertVisible(Date date, Date... moreDates) {
-    assert isDateVisible(date) : date + " must be visible";
-    if (moreDates != null) {
-      for (Date d : moreDates) {
-        assert isDateVisible(d) : d + " must be visible";
-      }
-    }
-    return true;
-  }
-
  }

Modified:  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DefaultCalendarView.java
==============================================================================
---  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DefaultCalendarView.java
  
(original)
+++  
branches/1_6_datepicker/user/src/com/google/gwt/user/datepicker/client/DefaultCalendarView.java
  
Wed Dec  3 17:53:46 2008
@@ -94,7 +94,7 @@
          if (isFiller()) {
            dateStyle += " " + css().dayIsFiller();
          } else {
-          String extraStyle =  
getDatePicker().getGlobalStyleOfDate(current);
+          String extraStyle = getDatePicker().getStyleOfDate(current);
            if (extraStyle != null) {
              dateStyle += " " + extraStyle;
            }

Modified:  
branches/1_6_datepicker/user/test/com/google/gwt/user/client/ui/DatePickerTest.java
==============================================================================
---  
branches/1_6_datepicker/user/test/com/google/gwt/user/client/ui/DatePickerTest.java
      
(original)
+++  
branches/1_6_datepicker/user/test/com/google/gwt/user/client/ui/DatePickerTest.java
      
Wed Dec  3 17:53:46 2008
@@ -16,26 +16,301 @@
  package com.google.gwt.user.client.ui;

  import com.google.gwt.junit.client.GWTTestCase;
+import com.google.gwt.user.datepicker.client.CalendarModel;
+import com.google.gwt.user.datepicker.client.CalendarView;
  import com.google.gwt.user.datepicker.client.DatePicker;
+import com.google.gwt.user.datepicker.client.DefaultMonthSelector;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;

  /**
- * Tests DatePicker.
+ * Tests DatePicker's public api.
   */
[EMAIL PROTECTED]("deprecation")
+// Due to Date
  public class DatePickerTest extends GWTTestCase {
-  private DatePicker dp;
+
+  private static class DatePickerWithView extends DatePicker {
+    DatePickerWithView(MockCalendarView view) {
+      super(new DefaultMonthSelector(), view, new CalendarModel());
+    }
+  }
+  /**
+   * Mock calendar view pretends to show datesVisibleList from the first  
of the month to
+   * the 30th day after that.
+   */
+  private static class MockCalendarView extends CalendarView {
+    Map<Date, Set<String>> dateStyles = new HashMap<Date, Set<String>>();
+    Set<Date> disabledDates = new HashSet<Date>();
+
+    MockCalendarView() {
+      initWidget(new Label());
+    }
+
+    @Override
+    public void addStyleToDate(String styleName, Date date) {
+      Set<String> fred = dateStyles.get(date);
+      if (fred == null) {
+        fred = new HashSet<String>();
+        dateStyles.put(date, fred);
+      }
+      fred.add(styleName);
+    }
+
+    @Override
+    public Date getFirstDate() {
+      Date thisMonth = getModel().getCurrentMonth();
+      return new Date(thisMonth.getYear(), thisMonth.getMonth(), 1);
+    }
+
+    @Override
+    public Date getLastDate() {
+      Date thisMonth = getModel().getCurrentMonth();
+      return new Date(thisMonth.getYear(), thisMonth.getMonth(), 30);
+    }
+
+    @Override
+    public boolean isDateEnabled(Date date) {
+      return !disabledDates.contains(date);
+    }
+
+    @Override
+    public void refresh() {
+    }
+
+    @Override
+    public void removeStyleFromDate(String styleName, Date date) {
+      Set<String> fred;
+      assertNotNull(fred = dateStyles.get(date));
+      assertTrue(fred.remove(styleName));
+    }
+
+    @Override
+    public void setEnabledOnDate(boolean enabled, Date date) {
+      if (enabled) {
+        disabledDates.remove(date);
+      } else {
+        disabledDates.add(date);
+      }
+    }
+
+    @Override
+    protected void setup() {
+    }
+  }
+
+  private static final String STYLE_LATER = "styleLater";
+
+  private static final String STYLE = "style1";
+
+  private DatePickerWithView mockedDatePicker;
+  private MockCalendarView view;
+
+  private final Date dateVisible1 = new Date(65, 6, 12);
+  private final Date dateVisible2 = new Date(65, 6, 13);
+  private final Date dateVisible3 = new Date(65, 6, 14);
+  private final Date dateVisible4 = new Date(65, 6, 15);
+  private final Date dateVisible5 = new Date(65, 6, 16);
+  private final List<Date> datesVisibleList = new ArrayList<Date>();
+  private final Date dateLater1 =
+      new Date(dateVisible1.getYear(), dateVisible1.getMonth() + 1,
+          dateVisible1.getDay());
+
+  private final Date dateLater2 =
+      new Date(dateVisible2.getYear(), dateVisible2.getMonth() + 1,
+          dateVisible2.getDay());
+  private final Date dateLater3 =
+      new Date(dateVisible1.getYear(), dateVisible3.getMonth() + 1,
+          dateVisible3.getDay());
+  private final Date dateLater4 =
+      new Date(dateVisible2.getYear(), dateVisible4.getMonth() + 1,
+          dateVisible4.getDay());
+  private final Date dateLater5 =
+      new Date(dateVisible1.getYear(), dateVisible5.getMonth() + 1,
+          dateVisible5.getDay());
+  private final List<Date> datesLaterList = new ArrayList<Date>();
+  {
+    datesVisibleList.add(dateVisible4);
+    datesVisibleList.add(dateVisible5);
+  }
+  {
+    datesLaterList.add(dateLater4);
+    datesLaterList.add(dateLater5);
+  }

    public String getModuleName() {
      return "com.google.gwt.user.User";
    }
-
+
    @Override
-  protected void gwtSetUp() throws Exception {
+  public void gwtSetUp() throws Exception {
      super.gwtSetUp();
-    dp = new DatePicker();
-    RootPanel.get().add(dp);
+
+    view = new MockCalendarView();
+    mockedDatePicker = new DatePickerWithView(view);
+    mockedDatePicker.setCurrentMonth(dateVisible1);
    }

+  public void testDisabling() {
+    mockedDatePicker.setTransientEnabledOnVisibleDates(false,  
dateVisible1);
+    mockedDatePicker.setTransientEnabledOnVisibleDates(false, dateVisible2,
+        dateVisible3);
+    mockedDatePicker.setTransientEnabledOnVisibleDates(false,  
datesVisibleList);
+
+    assertTrue(view.disabledDates.contains(dateVisible1));
+    assertTrue(view.disabledDates.contains(dateVisible2));
+    assertTrue(view.disabledDates.contains(dateVisible3));
+    assertTrue(view.disabledDates.contains(dateVisible4));
+    assertTrue(view.disabledDates.contains(dateVisible5));
+
+    mockedDatePicker.setTransientEnabledOnVisibleDates(true, dateVisible1);
+    mockedDatePicker.setTransientEnabledOnVisibleDates(true, dateVisible2,
+        dateVisible3);
+    mockedDatePicker.setTransientEnabledOnVisibleDates(true,  
datesVisibleList);
+
+    assertFalse(view.disabledDates.contains(dateVisible1));
+    assertFalse(view.disabledDates.contains(dateVisible2));
+    assertFalse(view.disabledDates.contains(dateVisible3));
+    assertFalse(view.disabledDates.contains(dateVisible4));
+    assertFalse(view.disabledDates.contains(dateVisible5));
+  }
+
+  public void testStyleSetting() {
+    mockedDatePicker.addStyleToDates(STYLE, dateVisible1);
+    mockedDatePicker.addStyleToDates(STYLE, dateVisible2, dateVisible3);
+    mockedDatePicker.addStyleToDates(STYLE, datesVisibleList);
+
+    assertViewHasStyleOnVisibleDates(STYLE);
+    assertPickerHasStyleOnVisibleDates(STYLE);
+
+    // See that styles on an invisible datesVisibleList don't
+
+    mockedDatePicker.addStyleToDates(STYLE_LATER, dateLater1);
+    mockedDatePicker.addStyleToDates(STYLE_LATER, dateLater2, dateLater3);
+    mockedDatePicker.addStyleToDates(STYLE_LATER, datesLaterList);
+
+    assertViewHasNoStyleOnHiddenDates();
+    assertPickerLacksStyleOnHiddenDates(STYLE_LATER);
+
+    // Remove a style from a visible date, and it should leave the view too
+    mockedDatePicker.removeStyleFromDates(STYLE, dateVisible1);
+    mockedDatePicker.removeStyleFromDates(STYLE, dateVisible2,  
dateVisible3);
+    mockedDatePicker.removeStyleFromDates(STYLE, datesVisibleList);
+
+    assertViewLacksStyleOnVisibleDates(STYLE);
+    assertPickerLacksStyleOnVisibleDates();
+
+    // Remove a style from an invisible date, and the view should not hear
+    // about it (the mock will explode if asked to remove a style it  
doesn't
+    // have)
+    mockedDatePicker.removeStyleFromDates(STYLE_LATER, dateLater1);
+    mockedDatePicker.removeStyleFromDates(STYLE_LATER, dateLater2,  
dateLater3);
+    mockedDatePicker.removeStyleFromDates(STYLE_LATER, datesLaterList);
+    assertPickerHasNoStyleOnInvisibleDates();
+  }
+
+  public void testTransientStyles() {
+    mockedDatePicker.addTransientStyleToVisibleDates(STYLE, dateVisible1);
+    mockedDatePicker.addTransientStyleToVisibleDates(STYLE, dateVisible2,
+        dateVisible3);
+    mockedDatePicker.addTransientStyleToVisibleDates(STYLE,  
datesVisibleList);
+    assertViewHasStyleOnVisibleDates(STYLE);
+    assertPickerLacksStyleOnVisibleDates();
+
+    mockedDatePicker.removeStyleFromDates(STYLE, dateVisible1);
+    mockedDatePicker.removeStyleFromDates(STYLE, dateVisible2,  
dateVisible3);
+    mockedDatePicker.removeStyleFromDates(STYLE, datesVisibleList);
+    assertViewLacksStyleOnVisibleDates(STYLE);
+    assertPickerLacksStyleOnVisibleDates();
+  }
+
    public void testValueChangeEvent() {
-    new DateValueChangeTester(dp).run();
+    DatePicker dp = new DatePicker();
+    RootPanel.get().add(dp);
+    new DateValueChangeTester(dp).run();
+  }
+
+  public void testValueStyle() {
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible4));
+
+    mockedDatePicker.setValue(dateVisible4);
+     
assertTrue(mockedDatePicker.getStyleOfDate(dateVisible4).contains("datePickerDayIsValue"));
+     
assertTrue(view.dateStyles.get(dateVisible4).contains("datePickerDayIsValue"));
+
+    mockedDatePicker.setValue(dateVisible5);
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible4));
+     
assertFalse(view.dateStyles.get(dateVisible4).contains("datePickerDayIsValue"));
+  }
+
+  private void assertPickerHasNoStyleOnInvisibleDates() {
+    assertNull(mockedDatePicker.getStyleOfDate(dateLater1));
+    assertNull(mockedDatePicker.getStyleOfDate(dateLater2));
+    assertNull(mockedDatePicker.getStyleOfDate(dateLater3));
+    assertNull(mockedDatePicker.getStyleOfDate(dateLater4));
+    assertNull(mockedDatePicker.getStyleOfDate(dateLater5));
+  }
+
+  private void assertPickerHasStyleOnVisibleDates(String style) {
+    assertTrue(mockedDatePicker.getStyleOfDate(dateVisible1).contains(
+        style));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateVisible2).contains(
+        style));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateVisible3).contains(
+        style));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateVisible4).contains(
+        style));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateVisible5).contains(
+        style));
+  }
+
+  private void assertPickerLacksStyleOnHiddenDates(String styleLater) {
+    assertTrue(mockedDatePicker.getStyleOfDate(dateLater1).contains(
+        styleLater));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateLater2).contains(
+        styleLater));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateLater3).contains(
+        styleLater));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateLater4).contains(
+        styleLater));
+    assertTrue(mockedDatePicker.getStyleOfDate(dateLater5).contains(
+        styleLater));
+  }
+
+  private void assertPickerLacksStyleOnVisibleDates() {
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible1));
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible2));
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible3));
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible4));
+    assertNull(mockedDatePicker.getStyleOfDate(dateVisible5));
+  }
+
+  private void assertViewHasNoStyleOnHiddenDates() {
+    assertNull(view.dateStyles.get(dateLater1));
+    assertNull(view.dateStyles.get(dateLater2));
+    assertNull(view.dateStyles.get(dateLater3));
+    assertNull(view.dateStyles.get(dateLater4));
+    assertNull(view.dateStyles.get(dateLater5));
+  }
+
+  private void assertViewHasStyleOnVisibleDates(String style) {
+    assertTrue(view.dateStyles.get(dateVisible1).contains(style));
+    assertTrue(view.dateStyles.get(dateVisible2).contains(style));
+    assertTrue(view.dateStyles.get(dateVisible3).contains(style));
+    assertTrue(view.dateStyles.get(dateVisible4).contains(style));
+    assertTrue(view.dateStyles.get(dateVisible5).contains(style));
+  }
+
+  private void assertViewLacksStyleOnVisibleDates(String style) {
+    assertFalse(view.dateStyles.get(dateVisible1).contains(style));
+    assertFalse(view.dateStyles.get(dateVisible2).contains(style));
+    assertFalse(view.dateStyles.get(dateVisible3).contains(style));
+    assertFalse(view.dateStyles.get(dateVisible4).contains(style));
+    assertFalse(view.dateStyles.get(dateVisible5).contains(style));
    }
  }

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to