@Test public void testSandboxParsing() throws ParseException, TokeniserException { failsToParse("sandbox a!*\n"); failsToParse("sandbox a!*^:"); assertEquals( "sandbox is valid", "sandbox abc", parse("sandbox abc").getDirectiveByType(SandboxDirective.class).show()); Policy p; p = parse("sandbox a"); Policy q; q = parse("sandbox a"); SandboxDirective d1 = p.getDirectiveByType(SandboxDirective.class); assertTrue("sandbox equals", d1.equals(q.getDirectiveByType(SandboxDirective.class))); assertEquals("sandbox hashcode equality", p.hashCode(), q.hashCode()); q = parse("sandbox b; script-src a"); assertFalse( "sandbox directives equality", d1.equals(q.getDirectiveByType(SandboxDirective.class))); d1.union(q.getDirectiveByType(SandboxDirective.class)); assertEquals("sandbox union", "sandbox a b", d1.show()); assertNotEquals("sandbox hashcode inequality", p.hashCode(), q.hashCode()); ScriptSrcDirective d2 = q.getDirectiveByType(ScriptSrcDirective.class); }
@Test public void testReportUri() throws ParseException, TokeniserException { failsToParse("report-uri "); failsToParse("report-uri #"); failsToParse("report-uri a"); Policy p, q; p = parse("report-uri http://a"); q = parse("report-uri http://b"); ReportUriDirective d1 = p.getDirectiveByType(ReportUriDirective.class); assertFalse("report-uri inequality", d1.equals(q.getDirectiveByType(ReportUriDirective.class))); d1.union(q.getDirectiveByType(ReportUriDirective.class)); assertEquals("report-uri union", "report-uri http://a http://b", d1.show()); assertNotEquals("report-uri hashcode shouldn't match", p.hashCode(), q.hashCode()); p = parse("report-uri https://a"); q = parse("report-uri https://a; "); assertEquals("report-uri hashcode match", p.hashCode(), q.hashCode()); assertTrue("report-uri equals", p.equals(q)); q = parse("report-uri http://a; sandbox 4"); d1 = q.getDirectiveByType(ReportUriDirective.class); SandboxDirective d2 = q.getDirectiveByType(SandboxDirective.class); assertEquals("report-uri http://a", d1.show()); assertEquals("sandbox 4", d2.show()); }