@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); }
@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; }
// @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(); } }