1 31 32 package org.opencms.util; 33 34 import junit.framework.TestCase; 35 36 43 public class TestCmsUriSplitter extends TestCase { 44 45 50 public TestCmsUriSplitter(String arg0) { 51 52 super(arg0); 53 } 54 55 60 public void testBasicSplitting() throws Exception { 61 62 String uri = "http://www.opencms.org/some/path#someanchor?a=b&c=d"; 63 64 CmsUriSplitter splitterA = new CmsUriSplitter(uri, false); 65 CmsUriSplitter splitterB = new CmsUriSplitter(uri, true); 66 assertTrue("Prefix part wrong", "http://www.opencms.org/some/path".equals(splitterA.getPrefix())); 67 assertTrue("Fragment part wrong", "someanchor".equals(splitterA.getAnchor())); 68 assertTrue("Query part wrong", "a=b&c=d".equals(splitterA.getQuery())); 69 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 70 assertTrue("Split result for URI 1 is different", splitterA.equals(splitterB)); 71 72 uri = "https://www.opencms.org/some/other/path/"; 73 splitterA = new CmsUriSplitter(uri); 74 splitterB = new CmsUriSplitter(uri, true); 75 assertTrue("Prefix part wrong", uri.equals(splitterA.getPrefix())); 76 assertTrue("Fragment part wrong", null == splitterA.getAnchor()); 77 assertTrue("Query part wrong", null == splitterA.getQuery()); 78 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 79 assertTrue("Split result for URI 2 is different", splitterA.equals(splitterB)); 80 81 uri = "http://www.alkacon.com/some/other/path/?a=b&c=d&x=y"; 82 splitterA = new CmsUriSplitter(uri); 83 splitterB = new CmsUriSplitter(uri, true); 84 assertTrue("Prefix part wrong", "http://www.alkacon.com/some/other/path/".equals(splitterA.getPrefix())); 85 assertTrue("Fragment part wrong", null == splitterA.getAnchor()); 86 assertTrue("Query part wrong", "a=b&c=d&x=y".equals(splitterA.getQuery())); 87 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 88 assertTrue("Split result for URI 3 is different", splitterA.equals(splitterB)); 89 90 uri = "http://www.alkacon.com/yet/anotther/path/#anotheranchor"; 91 splitterA = new CmsUriSplitter(uri); 92 splitterB = new CmsUriSplitter(uri, true); 93 assertTrue("Prefix part wrong", "http://www.alkacon.com/yet/anotther/path/".equals(splitterA.getPrefix())); 94 assertTrue("Fragment part wrong", "anotheranchor".equals(splitterA.getAnchor())); 95 assertTrue("Query part wrong", null == splitterA.getQuery()); 96 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 97 assertTrue("Split result for URI 4 is different", splitterA.equals(splitterB)); 98 99 uri = "http://www.alkacon.com/reverse/order/?a=b&c=d#anotheranchor"; 100 splitterA = new CmsUriSplitter(uri); 101 splitterB = new CmsUriSplitter(uri, true); 102 assertTrue("Prefix part wrong", "http://www.alkacon.com/reverse/order/".equals(splitterA.getPrefix())); 103 assertTrue("Fragment part wrong", "anotheranchor".equals(splitterA.getAnchor())); 104 assertTrue("Query part wrong", "a=b&c=d".equals(splitterA.getQuery())); 105 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 106 assertTrue("Split result for URI 5 is different", splitterA.equals(splitterB)); 107 108 uri = "http://www.alkacon.com/reverse/order/?a=b&c=d#anotheranchor?whatabout=thisone"; 109 splitterA = new CmsUriSplitter(uri); 110 splitterB = new CmsUriSplitter(uri, true); 111 assertTrue("Prefix part wrong", "http://www.alkacon.com/reverse/order/".equals(splitterA.getPrefix())); 112 assertTrue("Fragment part wrong", "anotheranchor".equals(splitterA.getAnchor())); 113 assertTrue("Query part wrong", "whatabout=thisone".equals(splitterA.getQuery())); 114 assertTrue("Using 'strict' mode should not have generated an error", splitterB.isErrorFree()); 115 assertTrue("Split result for URI 6 is different", splitterA.equals(splitterB)); 116 117 uri = "http://www.alkacon.com/reverse/order/?a=b&c=d#anotheranchor?whatabout=thisone#craziness"; 118 splitterA = new CmsUriSplitter(uri); 119 splitterB = new CmsUriSplitter(uri, true); 120 121 assertTrue("Prefix part wrong", "http://www.alkacon.com/reverse/order/".equals(splitterA.getPrefix())); 122 assertTrue("Fragment part wrong", "craziness".equals(splitterA.getAnchor())); 123 assertTrue("Query part wrong", "whatabout=thisone".equals(splitterA.getQuery())); 124 assertFalse("Using 'strict' mode should have generated an error", splitterB.isErrorFree()); 126 assertTrue("Split result for URI 7 is different", splitterA.equals(splitterB)); 127 128 uri = "http://www.opencms.org/bad/params?a=i have spaces&c=i have spaces, too#someanchor"; 129 splitterA = new CmsUriSplitter(uri); 130 splitterB = new CmsUriSplitter(uri, true); 131 assertTrue("Prefix part wrong", "http://www.opencms.org/bad/params".equals(splitterA.getPrefix())); 132 assertTrue("Fragment part wrong", "someanchor".equals(splitterA.getAnchor())); 133 assertTrue("Query part wrong", "a=i have spaces&c=i have spaces, too".equals(splitterA.getQuery())); 134 assertFalse("Using 'strict' mode should have generated an error", splitterB.isErrorFree()); 136 assertTrue("Split result for URI 8 is different", splitterA.equals(splitterB)); 137 } 138 } | Popular Tags |