public final void testKeyEqualToKeyFromSameNode() throws Exception { assertKeyEquality(true, key("42"), key("42")); assertKeyEquality(true, key("<br>"), key("<br>")); }
public final void testKeysDifferBasedOnNodeType() throws Exception { assertKeysDiffer(key("foo"), key("'foo'")); assertKeysDiffer(key("<div>"), key("div", true)); }
private static void assertKeyEquality( boolean equal, ModuleCacheKey k, ModuleCacheKey j) { assertEquality(equal, k, j); assertEquality(equal, k.asSingleton(), j.asSingleton()); }
private ModuleCacheKey key(String codeSnippet, boolean isHtml) throws Exception { MessageQueue mq = new EchoingMessageQueue( new PrintWriter(System.err, true), new MessageContext()); InputSource is = new InputSource(new URI("test:///" + getName())); ParseTreeNode node = CajaContentRewriter.parse( is, CharProducer.Factory.fromString(codeSnippet, is), isHtml ? "text/html" : "text/javascript", mq); return new ModuleCacheKey(isHtml ? ContentType.HTML : ContentType.JS, node); } }
private static void assertEquality(boolean equal, Object a, Object b) { assertEquals(equal, a.equals(b)); if (equal) { assertEquals(a.hashCode(), b.hashCode()); } }
private static void assertKeysDiffer(ModuleCacheKey k, ModuleCacheKey j) { assertKeyEquality(false, k, j); }
private ModuleCacheKey key(String codeSnippet) throws Exception { boolean isHtml = codeSnippet.trim().startsWith("<"); return key(codeSnippet, isHtml); }
private static void assertKeyEquality( boolean equal, ModuleCacheKey k, ModuleCacheKey j) { assertEquality(equal, k, j); assertEquality(equal, k.asSingleton(), j.asSingleton()); }
private ModuleCacheKey key(String codeSnippet, boolean isHtml) throws Exception { MessageQueue mq = new EchoingMessageQueue( new PrintWriter(System.err, true), new MessageContext()); InputSource is = new InputSource(new URI("test:///" + getName())); ParseTreeNode node = CajaContentRewriter.parse( is, CharProducer.Factory.fromString(codeSnippet, is), isHtml ? "text/html" : "text/javascript", mq); return new ModuleCacheKey(isHtml ? ContentType.HTML : ContentType.JS, node); } }
private static void assertEquality(boolean equal, Object a, Object b) { assertEquals(equal, a.equals(b)); if (equal) { assertEquals(a.hashCode(), b.hashCode()); } }
private static void assertKeysDiffer(ModuleCacheKey k, ModuleCacheKey j) { assertKeyEquality(false, k, j); }
private ModuleCacheKey key(String codeSnippet) throws Exception { boolean isHtml = codeSnippet.trim().startsWith("<"); return key(codeSnippet, isHtml); }
public final void testKeysDifferBasedOnCdataSection() throws Exception { assertKeysDiffer(key("<?xml version=\"1.0\"?><div><![CDATA[foo]]></div>"), key("<?xml version=\"1.0\"?><div><![CDATA[bar]]></div>")); }
public final void testKeyEqualToKeyFromSameNode() throws Exception { assertKeyEquality(true, key("42"), key("42")); assertKeyEquality(true, key("<br>"), key("<br>")); }
public final void testKeysDifferBasedOnNodeValue() throws Exception { assertKeysDiffer(key("'foo'"), key("'bar'")); assertKeysDiffer(key("break foo"), key("break")); assertKeysDiffer(key("break"), key("break foo")); }
public final void testKeysDifferBasedOnNodeValue() throws Exception { assertKeysDiffer(key("'foo'"), key("'bar'")); assertKeysDiffer(key("break foo"), key("break")); assertKeysDiffer(key("break"), key("break foo")); }
public final void testKeysDifferBasedOnCdataSection() throws Exception { assertKeysDiffer(key("<?xml version=\"1.0\"?><div><![CDATA[foo]]></div>"), key("<?xml version=\"1.0\"?><div><![CDATA[bar]]></div>")); }
public final void testKeysDifferBasedOnText() throws Exception { assertKeysDiffer(key("<div>foo</div>"), key("<div>bar</div>")); }
public final void testKeysDifferBasedOnNodeType() throws Exception { assertKeysDiffer(key("foo"), key("'foo'")); assertKeysDiffer(key("<div>"), key("div", true)); }
public final void testKeysDifferBasedOnChildren() throws Exception { assertKeysDiffer(key("return"), key("return 42")); }