Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(469)

Unified Diff: javatests/org/chromium/distiller/PagePatternTest.java

Issue 1029593003: implement validations of pagination URLs (Closed) Base URL: https://github.com/chromium/dom-distiller.git@master
Patch Set: nit Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: javatests/org/chromium/distiller/PagePatternTest.java
diff --git a/javatests/org/chromium/distiller/PagePatternTest.java b/javatests/org/chromium/distiller/PagePatternTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..534b7e30f36cfac0cc36d531c590e012dada8bef
--- /dev/null
+++ b/javatests/org/chromium/distiller/PagePatternTest.java
@@ -0,0 +1,107 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.distiller;
+
+public class PagePatternTest extends DomDistillerJsTestCase {
+
+ public void testIsPagingUrl() {
+ assertTrue(isPagingUrl("http://www.foo.com/a/b?queryA=v1&queryB=4&queryC=v3",
+ "http://www.foo.com/a/b?queryA=v1&queryB=[*!]&queryC=v3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b?queryA=v1&queryC=v3",
+ "http://www.foo.com/a/b?queryA=v1&queryB=[*!]&queryC=v3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b?queryB=2&queryC=v3",
+ "http://www.foo.com/a/b?queryB=[*!]&queryC=v3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b?queryC=v3",
+ "http://www.foo.com/a/b?queryB=[*!]&queryC=v3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b", "http://www.foo.com/a/b?page=[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b?page=3",
+ "http://www.foo.com/a/b?page=[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b/", "http://www.foo.com/a/b?page=[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b.htm", "http://www.foo.com/a/b?page=[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b.html", "http://www.foo.com/a/b?page=[*!]"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/b?queryA=v1&queryC=v3",
+ "http://www.foo.com/a/b?queryB=[*!]&queryC=v3"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/b?queryB=bar&queryC=v3",
+ "http://www.foo.com/a/b?queryB=[*!]&queryC=v3"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/b?queryC=v3&queryB=3",
+ "http://www.foo.com/a/b?queryB=[*!]&queryC=v3"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/b?queryA=v1",
+ "http://www.foo.com/a/b?queryA=v1&queryB=[*!]&queryC=v3"));
+
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc-2.html",
+ "http://www.foo.com/a/abc-[*!].html"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc.html",
+ "http://www.foo.com/a/abc-[*!].html"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc", "http://www.foo.com/a/abc-[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc-2", "http://www.foo.com/a/abc-[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/b-c-3", "http://www.foo.com/a/b-[*!]-c-3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a-c-3", "http://www.foo.com/a-[*!]-c-3"));
+ assertTrue(isPagingUrl("http://www.foo.com/a-p-1-c-3", "http://www.foo.com/a-p-[*!]-c-3"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/abc-page", "http://www.foo.com/a/abc-[*!]"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/2", "http://www.foo.com/a/abc-[*!]"));
+ assertFalse(isPagingUrl("http://www.foo.com/a", "http://www.foo.com/a/abc-[*!]"));
+
+ assertTrue(isPagingUrl("http://www.foo.com/a/page/2", "http://www.foo.com/a/page/[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a", "http://www.foo.com/a/page/[*!]"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/page/2/abc.html",
+ "http://www.foo.com/a/page/[*!]/abc.html"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc.html",
+ "http://www.foo.com/a/page/[*!]/abc.html"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/abc.html",
+ "http://www.foo.com/a/[*!]/abc.html"));
+ assertTrue(isPagingUrl("http://www.foo.com/a/2/abc.html",
+ "http://www.foo.com/a/[*!]/abc.html"));
+ assertTrue(isPagingUrl("http://www.foo.com/abc.html",
+ "http://www.foo.com/a/[*!]/abc.html"));
+ assertFalse(isPagingUrl("http://www.foo.com/a/page/b", "http://www.foo.com/a/page/[*!]"));
+ assertFalse(isPagingUrl("http://www.foo.com/m/page/2", "http://www.foo.com/p/page/[*!]"));
+ }
+
+ public void testIsPagePatternValid() {
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12",
+ "http://www.google.com/forum-12/page/[*!]"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12",
+ "http://www.google.com/forum-12/[*!]"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12",
+ "http://www.google.com/forum-12/page-[*!]"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12",
+ "http://www.google.com/forum-12?page=[*!]"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12?sid=12345",
+ "http://www.google.com/forum-12?page=[*!]&sort=d"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12/food",
+ "http://www.google.com/forum-12/food/for/bar/[*!]"));
+ assertTrue(isPagePatternValid("http://www.google.com/forum-12-food",
+ "http://www.google.com/forum-12-food-[*!]"));
+
+ assertFalse(isPagePatternValid("http://www.google.com/forum-12/food",
+ "http://www.google.com/forum-12/food/2012/01/[*!]"));
+ assertFalse(isPagePatternValid("http://www.google.com/forum-12/food/2012/01/01",
+ "http://www.google.com/forum-12/food/2012/01/[*!]"));
+ assertFalse(isPagePatternValid("http://www.google.com/forum-12/food",
+ "http://www.google.com/forum-12?page=[*!]"));
+
+ assertTrue(isPagePatternValid("http://www.google.com/thread/12",
+ "http://www.google.com/thread/12/page/[*!]"));
+ assertFalse(isPagePatternValid("http://www.google.com/thread/12/foo",
+ "http://www.google.com/thread/12/page/[*!]/foo"));
+ assertTrue(isPagePatternValid("http://www.google.com/thread/12/foo",
+ "http://www.google.com/thread/12/[*!]/foo"));
+ }
+
+ private static boolean isPagingUrl(String urlStr, String patternStr) {
+ PagePattern pattern = PagePattern.create(patternStr);
+ assertTrue(pattern != null);
+ return pattern.isPagingUrl(urlStr);
+ }
+
+ private static boolean isPagePatternValid(String urlStr, String patternStr) {
+ ParsedUrl parsedUrl = ParsedUrl.create(urlStr);
+ assertTrue(parsedUrl != null);
+ PagePattern pattern = PagePattern.create(patternStr);
+ assertTrue(pattern != null);
+ return pattern.isValidFor(parsedUrl);
+ }
+
+}

Powered by Google App Engine
This is Rietveld 408576698