Package com.google.gwt.debugpanel.widgets

Source Code of com.google.gwt.debugpanel.widgets.GwtDebugPanelFiltersTest

/*
* Copyright 2009 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations
* under the License.
*/
package com.google.gwt.debugpanel.widgets;

import com.google.gwt.debugpanel.common.AbstractDebugPanelGwtTestCase;
import com.google.gwt.debugpanel.common.Utils;
import com.google.gwt.debugpanel.models.DebugPanelFilter;
import com.google.gwt.debugpanel.models.DebugStatisticsValue;
import com.google.gwt.debugpanel.models.GwtDebugStatisticsValue;
import com.google.gwt.i18n.client.DateTimeFormat;

import java.util.Date;

/**
* Tests the GWT {@link DebugPanelFilter filters}.
*/
public class GwtDebugPanelFiltersTest extends AbstractDebugPanelGwtTestCase {
  private GwtDebugPanelFilters.TimeFilter timeFilter;
  private GwtDebugPanelFilters.TimeFilter.TimeFilterConfig timeConfig;
  private GwtDebugPanelFilters.DurationFilter durationFilter;
  private GwtDebugPanelFilters.DurationFilter.DurationFilterConfig durationConfig;
  private GwtDebugPanelFilters.RpcFilter rpcFilter;
  private GwtDebugPanelFilters.RpcFilter.RpcFilterConfig rpcConfig;

  @Override
  protected void gwtSetUp() throws Exception {
    super.gwtSetUp();
    Utils.setInstance(new Utils.DefaultUtil());
    timeFilter = new GwtDebugPanelFilters.TimeFilter();
    timeConfig = (GwtDebugPanelFilters.TimeFilter.TimeFilterConfig) timeFilter.getConfig();
    durationFilter = new GwtDebugPanelFilters.DurationFilter();
    durationConfig =
      (GwtDebugPanelFilters.DurationFilter.DurationFilterConfig) durationFilter.getConfig();
    rpcFilter = new GwtDebugPanelFilters.RpcFilter();
    rpcConfig = (GwtDebugPanelFilters.RpcFilter.RpcFilterConfig) rpcFilter.getConfig();
  }

  @Override
  protected void gwtTearDown() throws Exception {
    super.gwtTearDown();
    Utils.setInstance(null);
  }

  public void testGetFilters() {
    DebugPanelFilter[] filters = GwtDebugPanelFilters.getFilters();
    assertNotNull(filters);
    assertTrue(filters.length > 0);
  }

  public void testTimeFilterStrings() {
    assertNotNull(timeFilter.getMenuItemLabel());
    assertNotNull(timeFilter.getSettingsTitle());
    assertNotNull(timeFilter.getDescription());
  }

  public void testTimeFilterSettings() {
    assertNotNull(timeConfig);
    assertNotNull(timeConfig.getView());
    assertNotNull(timeConfig.getView().getWidget());
  }

  public void testTimeFilterParseWithMillis() {
    Date start = new Date(), end = new Date(start.getTime() + 10);
    timeConfig.startDate.setText(GwtDebugPanelFilters.FORMAT.format(start));
    timeConfig.endDate.setText(GwtDebugPanelFilters.FORMAT.format(end));
    assertTrue(timeConfig.getView().onApply());
    assertEquals(start, timeFilter.getStart());
    assertEquals(end, timeFilter.getEnd());
  }

  public void testTimeFilterParseWithoutMillis() {
    long time = (System.currentTimeMillis() / 1000) * 1000;
    Date start = new Date(time), end = new Date(start.getTime() + 1000);
    DateTimeFormat format = DateTimeFormat.getFormat("HH:mm:ss");
    timeConfig.startDate.setText(format.format(start));
    timeConfig.endDate.setText(format.format(end));
    assertTrue(timeConfig.getView().onApply());
    assertEquals(start, timeFilter.getStart());
    assertEquals(end, timeFilter.getEnd());
  }

  public void testTimeFilterParseInvalidTimeIsResetToNull() {
    timeConfig.startDate.setText(GwtDebugPanelFilters.FORMAT.format(new Date()));
    timeConfig.endDate.setText("abc");
    assertTrue(timeConfig.getView().onApply());
    assertNotNull(timeFilter.getStart());
    assertNull(timeFilter.getEnd());
  }

  public void testTimeFilterParseTwoBlanksDisablesFilter() {
    timeConfig.startDate.setText("");
    timeConfig.endDate.setText("");
    assertFalse(timeConfig.getView().onApply());
    assertNull(timeFilter.getStart());
    assertNull(timeFilter.getEnd());
  }

  public void testTimeFilterParseTwoInvalidsDisablesFilter() {
    timeConfig.startDate.setText("abc");
    timeConfig.endDate.setText("abc");
    assertFalse(timeConfig.getView().onApply());
    assertNull(timeFilter.getStart());
    assertNull(timeFilter.getEnd());
  }

  public void testTimeFilterOnRemoveResetsToNulls() {
    timeFilter.setTime(new Date(), new Date());
    timeConfig.onRemove();
    assertNull(timeFilter.getStart());
    assertNull(timeFilter.getEnd());
    assertEquals("", timeConfig.startDate.getText());
    assertEquals("", timeConfig.endDate.getText());
  }

  public void testTimeFilterNoRangeIncludesAll() {
    timeFilter.setTime(null, null);
    assertTrue(timeFilter.include(null));
  }

  public void testTimeFilterRangeWithoutStart() {
    Date end = new Date();
    timeFilter.setTime(null, end);
    assertTrue(timeFilter.include(value(0, 1000)));
    assertTrue(timeFilter.include(value(0, end.getTime() - 1)));
    assertTrue(timeFilter.include(value(end.getTime(), end.getTime())));
    assertFalse(timeFilter.include(value(0, end.getTime() + 1)));
  }

  public void testTimeFilterRangeWithoutEnd() {
    Date start = new Date();
    timeFilter.setTime(start, null);
    assertTrue(timeFilter.include(value(Long.MAX_VALUE - 1, Long.MAX_VALUE)));
    assertTrue(timeFilter.include(value(start.getTime() + 1, Long.MAX_VALUE)));
    assertTrue(timeFilter.include(value(start.getTime(), start.getTime())));
    assertFalse(timeFilter.include(value(start.getTime() - 1, Long.MAX_VALUE)));
  }

  public void testTimeFilterRangeWithStartAndEnd() {
    Date start = new Date(), end = new Date(start.getTime() + 10);
    timeFilter.setTime(start, end);
    assertTrue(timeFilter.include(value(start.getTime() + 1, end.getTime() - 1)));
    assertTrue(timeFilter.include(value(start.getTime() + 1, end.getTime())));
    assertTrue(timeFilter.include(value(start.getTime(), end.getTime() - 1)));
    assertTrue(timeFilter.include(value(start.getTime(), end.getTime())));

    assertFalse(timeFilter.include(value(start.getTime() - 1, end.getTime() + 1)));
    assertFalse(timeFilter.include(value(start.getTime() - 1, end.getTime())));
    assertFalse(timeFilter.include(value(start.getTime(), end.getTime() + 1)));
  }

  public void testDurationFilterStrings() {
    assertNotNull(durationFilter.getMenuItemLabel());
    assertNotNull(durationFilter.getSettingsTitle());
    assertNotNull(durationFilter.getDescription());
  }

  public void testDurationFilterSettings() {
    assertNotNull(durationConfig);
    assertNotNull(durationConfig.getView());
    assertNotNull(durationConfig.getView().getWidget());
  }

  public void testDurationFilterParseValidPositive() {
    durationConfig.min.setText("1");
    durationConfig.max.setText("2");
    assertTrue(durationConfig.getView().onApply());
    assertEquals(1, durationFilter.getMinDuration());
    assertEquals(2, durationFilter.getMaxDuration());
  }

  public void testDurationFilterParseNegativeValuesAreSameAsZero() {
    durationConfig.min.setText("-1");
    durationConfig.max.setText("2");
    assertTrue(durationConfig.getView().onApply());
    assertEquals(0, durationFilter.getMinDuration());
    assertEquals(2, durationFilter.getMaxDuration());
  }

  public void testDurationFilterParseInvlidValuesAreSameAsZero() {
    durationConfig.min.setText("1");
    durationConfig.max.setText("abc");
    assertTrue(durationConfig.getView().onApply());
    assertEquals(1, durationFilter.getMinDuration());
    assertEquals(0, durationFilter.getMaxDuration());
  }

  public void testDurationFilterParseZeroValuesDisablesFilter() {
    durationConfig.min.setText("0");
    durationConfig.max.setText("-19");
    assertFalse(durationConfig.getView().onApply());
    assertEquals(0, durationFilter.getMinDuration());
    assertEquals(0, durationFilter.getMaxDuration());
  }

  public void testDurationFilterParseInvalidValuesDisablesFilter() {
    durationConfig.min.setText("abc");
    durationConfig.max.setText("def");
    assertFalse(durationConfig.getView().onApply());
    assertEquals(0, durationFilter.getMinDuration());
    assertEquals(0, durationFilter.getMaxDuration());
  }

  public void testDurationFilterOnRemoveResetsToZeros() {
    durationFilter.setDuration(10, 20);
    durationConfig.onRemove();
    assertEquals(0, durationFilter.getMinDuration());
    assertEquals(0, durationFilter.getMaxDuration());
    assertEquals("0", durationConfig.min.getText());
    assertEquals("0", durationConfig.max.getText());
  }

  public void testDurationFilterNoRangeIncludesAll() {
    durationFilter.setDuration(0, 0);
    assertTrue(durationFilter.include(null));
  }

  public void testDurationFilterRangeWithoutStart() {
    durationFilter.setDuration(0, 10);
    assertTrue(durationFilter.include(value(0, 0)));
    assertTrue(durationFilter.include(value(10, 19)));
    assertTrue(durationFilter.include(value(20, 30)));
    assertFalse(durationFilter.include(value(30, 41)));
  }

  public void testDurationFilterRangeWithoutEnd() {
    durationFilter.setDuration(10, 0);
    assertTrue(durationFilter.include(value(0, 1000)));
    assertTrue(durationFilter.include(value(10, 21)));
    assertTrue(durationFilter.include(value(30, 40)));
    assertFalse(durationFilter.include(value(40, 49)));
  }

  public void testDurationFilterRangeWithStartAndEnd() {
    durationFilter.setDuration(10, 20);
    assertTrue(durationFilter.include(value(0, 15)));
    assertTrue(durationFilter.include(value(20, 39)));
    assertTrue(durationFilter.include(value(40, 51)));
    assertTrue(durationFilter.include(value(50, 60)));
    assertTrue(timeFilter.include(value(60, 80)));

    assertFalse(durationFilter.include(value(0, 9)));
    assertFalse(durationFilter.include(value(10, 31)));
  }

  public void testRpcFilterStrings() {
    assertNotNull(rpcFilter.getMenuItemLabel());
    assertNotNull(rpcFilter.getSettingsTitle());
    assertNotNull(rpcFilter.getDescription());
  }

  public void testRpcFilterSettings() {
    assertNotNull(rpcConfig);
    assertNotNull(rpcConfig.getView());
    assertNotNull(rpcConfig.getView().getWidget());
  }

  public void testRpcFilterDefaultPatternIsEmpty() {
    assertEquals("", rpcFilter.getPattern());
  }

  public void testRpcFilterPatternIsTrimmed() {
    rpcConfig.textbox.setText(" abc ");
    assertTrue(rpcConfig.onApply());
    assertEquals("abc", rpcFilter.getPattern());
  }

  public void testRpcFilterEmptyPatternDisablesFilter() {
    rpcConfig.textbox.setText("   ");
    assertFalse(rpcConfig.onApply());
    assertEquals("", rpcFilter.getPattern());
  }

  public void testRpcFilterOnRemoveResetsToEmptyPattern() {
    rpcConfig.textbox.setText("abc");
    rpcConfig.onApply();
    rpcConfig.onRemove();
    assertEquals("", rpcFilter.getPattern());
    assertEquals("", rpcConfig.textbox.getText());
  }

  public void testRpcFilterDefaultPatternIncludesAll() {
    assertTrue(rpcFilter.include(null));
  }

  public void testRpcFilterEmptyPatternIncludesAll() {
    rpcFilter.setPattern("");
    assertTrue(rpcFilter.include(null));
  }

  public void testRpcFilterDoesNotIncludeNullValues() {
    rpcFilter.setPattern("abc");
    assertFalse(rpcFilter.include(null));
  }

  public void testRpcFilterDoesNotPassNonGwtEvents() {
    rpcFilter.setPattern("abc");
    assertFalse(rpcFilter.include(value(10, 20)));
  }

  public void testRpcFilterDoesNotPassEventsWithoutRpcDetail() {
    rpcFilter.setPattern("abc");
    assertFalse(rpcFilter.include(value(null)));
  }

  public void testRpcFilterPassesEventsWithSameRpcAsPattern() {
    rpcFilter.setPattern("abc");
    assertTrue(rpcFilter.include(value("abc")));
  }

  public void testRpcFilterPassesEventsMatchingASimpleRegExPattern() {
    rpcFilter.setPattern("abc*");
    assertTrue(rpcFilter.include(value("ab")));
    assertTrue(rpcFilter.include(value("abc")));
    assertTrue(rpcFilter.include(value("abccc")));
    assertFalse(rpcFilter.include(value("cab")));
    assertFalse(rpcFilter.include(value("abcd")));
  }

  public void testRpcFilterPassesEventsMatchingADotStarpattern() {
    rpcFilter.setPattern("a.*c");
    assertTrue(rpcFilter.include(value("ac")));
    assertTrue(rpcFilter.include(value("abc")));
    assertTrue(rpcFilter.include(value("a_d_c")));
    assertFalse(rpcFilter.include(value("_abc")));
    assertFalse(rpcFilter.include(value("abc_")));
  }

  private static DebugStatisticsValue value(final long start, final long end) {
    return new DebugStatisticsValue("name", "module", start, end) {};
  }

  private static DebugStatisticsValue value(String rpc) {
    GwtDebugStatisticsValue value = new GwtDebugStatisticsValue("name", "module", 10, 20);
    if (rpc != null) {
      value.setRpcMethod(rpc);
    }
    return value;
  }
}
TOP

Related Classes of com.google.gwt.debugpanel.widgets.GwtDebugPanelFiltersTest

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.