Esempio n. 1
0
  @Test
  public void null_selector() {
    UrlFilter filter = new UrlFilter();

    RequestPathInfo testInfo = mock(RequestPathInfo.class);
    when(testInfo.getSelectorString()).thenReturn(null);

    assertTrue(filter.checkSelector(testInfo, null));
  }
 @Override
 public CheckResult checkRequest() {
   List<CheckResult> checkResults = Lists.newArrayList();
   for (UrlFilter urlFilter : urlFilters) {
     lbsCheck = CheckerFactory.getChecker(LbsType.valueOf(urlFilter.getLbstype()));
     checkResults.add(lbsCheck.check(location, urlFilter));
   }
   return reduceCheckResult(checkResults);
 }
Esempio n. 3
0
  @Test
  public void non_null_selector() {
    UrlFilter filter = new UrlFilter();

    RequestPathInfo testInfo = mock(RequestPathInfo.class);
    when(testInfo.getSelectorString()).thenReturn("sample");

    // null allowedSelectors = ok
    assertTrue(filter.checkSelector(testInfo, properties));

    // empty array allowedSelectors = fail
    properties.put(UrlFilter.PN_ALLOWED_SELECTORS, (Object) new String[0]);
    assertFalse(filter.checkSelector(testInfo, properties));

    // selector string in array = ok
    properties.put(UrlFilter.PN_ALLOWED_SELECTORS, (Object) new String[] {"sample", "sample2"});
    assertTrue(filter.checkSelector(testInfo, properties));

    // selector string not in array = fail
    properties.put(UrlFilter.PN_ALLOWED_SELECTORS, (Object) new String[] {"other"});
    assertFalse(filter.checkSelector(testInfo, properties));

    properties.clear();

    // matches regex
    properties.put(UrlFilter.PN_ALLOWED_SELECTOR_PATTERN, "^s[a-z]m.*$");
    assertTrue(filter.checkSelector(testInfo, properties));

    // doesn't match regex
    properties.put(UrlFilter.PN_ALLOWED_SELECTOR_PATTERN, "^s[1-2]m$");
    assertFalse(filter.checkSelector(testInfo, properties));

    properties.clear();

    // matches array or regex = ok
    properties.put(UrlFilter.PN_ALLOWED_SELECTORS, (Object) new String[] {"other"});
    properties.put(UrlFilter.PN_ALLOWED_SELECTOR_PATTERN, "^s[a-z]m.*$");
    assertTrue(filter.checkSelector(testInfo, properties));

    properties.put(UrlFilter.PN_ALLOWED_SELECTORS, (Object) new String[] {"sample"});
    properties.put(UrlFilter.PN_ALLOWED_SELECTOR_PATTERN, "^s[a-z]m$");
    assertTrue(filter.checkSelector(testInfo, properties));
  }
 private boolean matchUri(List<UrlFilter> list, String uri) {
   for (UrlFilter filter : list) {
     if (filter.matches(uri)) return true;
   }
   return false;
 }
Esempio n. 5
0
  // @see
  // org.gudy.azureus2.plugins.ui.tables.TableCellMouseListener#cellMouseTrigger(org.gudy.azureus2.plugins.ui.tables.TableCellMouseEvent)
  public void cellMouseTrigger(TableCellMouseEvent event) {
    VuzeActivitiesEntry entry = (VuzeActivitiesEntry) event.cell.getDataSource();

    String tooltip = null;
    boolean invalidateAndRefresh = false;

    Rectangle bounds = ((TableCellSWT) event.cell).getBounds();
    String text = (String) event.cell.getTableRow().getData("text");
    if (text == null) {
      return;
    }

    GCStringPrinter sp = null;
    GC gc = new GC(Display.getDefault());
    try {
      if (font != null) {
        gc.setFont(font);
      }
      Rectangle drawBounds = getDrawBounds((TableCellSWT) event.cell);
      sp = new GCStringPrinter(gc, text, drawBounds, true, true, SWT.WRAP | SWT.CENTER);
      sp.calculateMetrics();
    } catch (Exception e) {
      Debug.out(e);
    } finally {
      gc.dispose();
    }

    if (sp != null) {
      URLInfo hitUrl = sp.getHitUrl(event.x + bounds.x, event.y + bounds.y);
      int newCursor;
      if (hitUrl != null) {
        if (event.eventType == TableCellMouseEvent.EVENT_MOUSEUP) {
          if (hitUrl.url.equals("download")) {
            String referal = null;
            Object ds = event.cell.getDataSource();
            if (ds instanceof VuzeActivitiesEntry) {
              referal =
                  DLReferals.DL_REFERAL_DASHACTIVITY + "-" + ((VuzeActivitiesEntry) ds).getTypeID();
            }
            TorrentListViewsUtils.downloadDataSource(ds, false, referal);

          } else if (hitUrl.url.equals("play")) {
            String referal = null;
            Object ds = event.cell.getDataSource();
            if (ds instanceof VuzeActivitiesEntry) {
              referal =
                  DLReferals.DL_REFERAL_PLAYDASHACTIVITY
                      + "-"
                      + ((VuzeActivitiesEntry) ds).getTypeID();
            }
            TorrentListViewsUtils.playOrStreamDataSource(ds, referal, false, true);

          } else if (hitUrl.url.equals("launch")) {
            // run via play or stream so we get the security warning
            Object ds = event.cell.getDataSource();
            TorrentListViewsUtils.playOrStreamDataSource(
                ds, DLReferals.DL_REFERAL_LAUNCH, false, true);

          } else if (!UrlFilter.getInstance().urlCanRPC(hitUrl.url)) {
            Utils.launch(hitUrl.url);
          } else {
            UIFunctionsSWT uif = UIFunctionsManagerSWT.getUIFunctionsSWT();
            if (uif != null) {
              String target = hitUrl.target;
              if (target == null) {
                target = SkinConstants.VIEWID_BROWSER_BROWSE;
              }
              uif.viewURL(hitUrl.url, target, "column.activity.action");
              return;
            }
          }
        }
        Object ds = event.cell.getDataSource();

        newCursor = SWT.CURSOR_HAND;
        if (UrlFilter.getInstance().urlCanRPC(hitUrl.url)) {
          tooltip = hitUrl.title;
        } else {
          tooltip = hitUrl.url;
        }
      } else {
        newCursor = SWT.CURSOR_ARROW;
      }

      int oldCursor = ((TableCellSWT) event.cell).getCursorID();
      if (oldCursor != newCursor) {
        invalidateAndRefresh = true;
        ((TableCellSWT) event.cell).setCursorID(newCursor);
      }
    }

    Object o = event.cell.getToolTip();
    if ((o == null) || (o instanceof String)) {
      String oldTooltip = (String) o;
      if (!StringCompareUtils.equals(oldTooltip, tooltip)) {
        invalidateAndRefresh = true;
        event.cell.setToolTip(tooltip);
      }
    }

    if (invalidateAndRefresh) {
      event.cell.invalidate();
      ((TableCellSWT) event.cell).redraw();
    }
  }