protected String makeCacheKey(String code, String externs, JsUri uri, CompilerOptions options) { // TODO: include compilation options in the cache key return Joiner.on(":").join( HashUtil.checksum(code.getBytes()), HashUtil.checksum(externs.getBytes()), uri.getCompileMode(), uri.isDebug(), options.isExternExportsEnabled()); }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload, List<String> libs) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); expect(result.getLibs()).andReturn(libs).anyTimes(); expect(result.getLoadedLibs()).andReturn(LOADED).anyTimes(); replay(result); return result; }
private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern, List<String> loaded, boolean isContainer, Map<String, String> params, JsCompileMode compileMode, String repository) { JsUri context = createMock(JsUri.class); expect(context.getContainer()).andStubReturn(CONTAINER); expect(context.isNoCache()).andStubReturn(nocache); expect(context.isDebug()).andStubReturn(debug); expect(context.getGadget()).andStubReturn(GADGET_URI); expect(context.getContext()).andStubReturn( isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET); expect(context.getLibs()).andStubReturn(extern); expect(context.getLoadedLibs()).andStubReturn( loaded == null ? ImmutableList.<String>of() : loaded); expect(context.getOnload()).andStubReturn(null); expect(context.isJsload()).andStubReturn(false); expect(context.isNohint()).andStubReturn(false); expect(context.getExtensionParams()).andStubReturn(params); expect(context.getOrigUri()).andStubReturn(null); expect(context.getCompileMode()).andStubReturn(compileMode); expect(context.cajoleContent()).andStubReturn(false); expect(context.getRepository()).andStubReturn(repository); replay(context); return context; }
private JsUri mockGadgetContext(boolean nocache, boolean debug, List<String> extern, List<String> loaded, boolean isContainer, Map<String, String> params, JsCompileMode compileMode, String repository) { JsUri context = createMock(JsUri.class); expect(context.getContainer()).andStubReturn(CONTAINER); expect(context.isNoCache()).andStubReturn(nocache); expect(context.isDebug()).andStubReturn(debug); expect(context.getGadget()).andStubReturn(GADGET_URI); expect(context.getContext()).andStubReturn( isContainer ? RenderingContext.CONTAINER : RenderingContext.GADGET); expect(context.getLibs()).andStubReturn(extern); expect(context.getLoadedLibs()).andStubReturn( loaded == null ? ImmutableList.<String>of() : loaded); expect(context.getOnload()).andStubReturn(null); expect(context.isJsload()).andStubReturn(false); expect(context.isNohint()).andStubReturn(false); expect(context.getExtensionParams()).andStubReturn(params); expect(context.getOrigUri()).andStubReturn(null); expect(context.getCompileMode()).andStubReturn(compileMode); expect(context.cajoleContent()).andStubReturn(false); expect(context.getRepository()).andStubReturn(repository); replay(context); return context; }
private JsUri mockJsUri(boolean debug) { JsUri result = createMock(JsUri.class); expect(result.isDebug()).andReturn(debug).anyTimes(); expect(result.getCompileMode()).andReturn(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).anyTimes(); expect(result.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED).anyTimes(); expect(result.getContainer()).andReturn("container").anyTimes(); expect(result.getContext()).andReturn(RenderingContext.CONFIGURED_GADGET).anyTimes(); expect(result.getRefresh()).andReturn(1000).anyTimes(); expect(result.isNoCache()).andReturn(false).anyTimes(); expect(result.getGadget()).andReturn("http://foo.com/g.xml").anyTimes(); expect(result.getLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getLoadedLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getOnload()).andReturn("foo").anyTimes(); expect(result.isJsload()).andReturn(true).anyTimes(); expect(result.isNohint()).andReturn(true).anyTimes(); expect(result.getOrigUri()).andReturn(null).anyTimes(); expect(result.getRepository()).andReturn(null).anyTimes(); expect(result.getExtensionParams()).andReturn(null).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(boolean debug) { JsUri result = createMock(JsUri.class); expect(result.isDebug()).andReturn(debug).anyTimes(); expect(result.getCompileMode()).andReturn(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).anyTimes(); expect(result.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED).anyTimes(); expect(result.getContainer()).andReturn("container").anyTimes(); expect(result.getContext()).andReturn(RenderingContext.CONFIGURED_GADGET).anyTimes(); expect(result.getRefresh()).andReturn(1000).anyTimes(); expect(result.isNoCache()).andReturn(false).anyTimes(); expect(result.getGadget()).andReturn("http://foo.com/g.xml").anyTimes(); expect(result.getLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getLoadedLibs()).andReturn(ImmutableList.<String>of()).anyTimes(); expect(result.getOnload()).andReturn("foo").anyTimes(); expect(result.isJsload()).andReturn(true).anyTimes(); expect(result.isNohint()).andReturn(true).anyTimes(); expect(result.getOrigUri()).andReturn(null).anyTimes(); expect(result.getRepository()).andReturn(null).anyTimes(); expect(result.getExtensionParams()).andReturn(null).anyTimes(); replay(result); return result; }
private void checkWrapCode(JsCompileMode mode, boolean wraps) throws Exception { IMocksControl control = createControl(); JsRequest request = control.createMock(JsRequest.class); JsUri jsUri = control.createMock(JsUri.class); expect(jsUri.getCompileMode()).andReturn(mode); expect(request.getJsUri()).andReturn(jsUri); JsResponseBuilder builder = new JsResponseBuilder().appendJs("JS_CODE", "source"); AnonFuncWrappingProcessor processor = new AnonFuncWrappingProcessor(); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); if (wraps) { assertEquals("(function(){JS_CODE})();", builder.build().toJsString()); } else { assertEquals("JS_CODE", builder.build().toJsString()); } } }
private void checkWrapCode(JsCompileMode mode, boolean wraps) throws Exception { IMocksControl control = createControl(); JsRequest request = control.createMock(JsRequest.class); JsUri jsUri = control.createMock(JsUri.class); expect(jsUri.getCompileMode()).andReturn(mode); expect(request.getJsUri()).andReturn(jsUri); JsResponseBuilder builder = new JsResponseBuilder().appendJs("JS_CODE", "source"); AnonFuncWrappingProcessor processor = new AnonFuncWrappingProcessor(); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); if (wraps) { assertEquals("(function(){JS_CODE})();", builder.build().toJsString()); } else { assertEquals("JS_CODE", builder.build().toJsString()); } } }
public JsUri(UriStatus status, JsUri origJsUri) { super(status, origJsUri.getRefresh(), origJsUri.isDebug(), origJsUri.isNoCache(), origJsUri.getContainer(), origJsUri.getGadget()); this.setCajoleContent(origJsUri.cajoleContent()); this.libs = origJsUri.getLibs(); this.loadedLibs = origJsUri.getLoadedLibs(); this.onload = origJsUri.getOnload(); this.jsload = origJsUri.isJsload(); this.nohint = origJsUri.isNohint(); this.compileMode = origJsUri.getCompileMode(); this.context = origJsUri.getContext(); this.origUri = origJsUri.getOrigUri(); this.repository = origJsUri.getRepository(); this.extensionParams = origJsUri.getExtensionParams(); }
@Test public void newJsUriWithConfiguredGadgetContext() throws Exception { Uri uri = newTestUriBuilder(RenderingContext.CONFIGURED_GADGET, JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).toUri(); JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, uri, LIBS, HAVE); assertEquals(RenderingContext.CONFIGURED_GADGET, jsUri.getContext()); assertEquals(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, jsUri.getCompileMode()); assertEquals(CONTAINER_VALUE, jsUri.getContainer()); assertTrue(jsUri.isJsload()); assertTrue(jsUri.isNoCache()); assertTrue(jsUri.isNohint()); assertEquals(ONLOAD_VALUE, jsUri.getOnload()); assertEquals(LIBS, Lists.newArrayList(jsUri.getLibs())); assertEquals(HAVE, Lists.newArrayList(jsUri.getLoadedLibs())); assertEquals(uri, jsUri.getOrigUri()); }
@Test public void newJsUriWithOriginalUri() throws Exception { Uri uri = newTestUriBuilder(RenderingContext.CONTAINER, JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).toUri(); JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, uri, LIBS, HAVE); assertEquals(RenderingContext.CONTAINER, jsUri.getContext()); assertEquals(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, jsUri.getCompileMode()); assertEquals(CONTAINER_VALUE, jsUri.getContainer()); assertTrue(jsUri.isJsload()); assertTrue(jsUri.isNoCache()); assertTrue(jsUri.isNohint()); assertEquals(ONLOAD_VALUE, jsUri.getOnload()); assertEquals(LIBS, Lists.newArrayList(jsUri.getLibs())); assertEquals(HAVE, Lists.newArrayList(jsUri.getLoadedLibs())); assertEquals(uri, jsUri.getOrigUri()); }
@Test public void newJsUriWithOriginalUri() throws Exception { Uri uri = newTestUriBuilder(RenderingContext.CONTAINER, JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).toUri(); JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, uri, LIBS, HAVE); assertEquals(RenderingContext.CONTAINER, jsUri.getContext()); assertEquals(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, jsUri.getCompileMode()); assertEquals(CONTAINER_VALUE, jsUri.getContainer()); assertTrue(jsUri.isJsload()); assertTrue(jsUri.isNoCache()); assertTrue(jsUri.isNohint()); assertEquals(ONLOAD_VALUE, jsUri.getOnload()); assertEquals(LIBS, Lists.newArrayList(jsUri.getLibs())); assertEquals(HAVE, Lists.newArrayList(jsUri.getLoadedLibs())); assertEquals(uri, jsUri.getOrigUri()); }
@Test public void newJsUriWithConfiguredGadgetContext() throws Exception { Uri uri = newTestUriBuilder(RenderingContext.CONFIGURED_GADGET, JsCompileMode.CONCAT_COMPILE_EXPORT_ALL).toUri(); JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, uri, LIBS, HAVE); assertEquals(RenderingContext.CONFIGURED_GADGET, jsUri.getContext()); assertEquals(JsCompileMode.CONCAT_COMPILE_EXPORT_ALL, jsUri.getCompileMode()); assertEquals(CONTAINER_VALUE, jsUri.getContainer()); assertTrue(jsUri.isJsload()); assertTrue(jsUri.isNoCache()); assertTrue(jsUri.isNohint()); assertEquals(ONLOAD_VALUE, jsUri.getOnload()); assertEquals(LIBS, Lists.newArrayList(jsUri.getLibs())); assertEquals(HAVE, Lists.newArrayList(jsUri.getLoadedLibs())); assertEquals(uri, jsUri.getOrigUri()); }
@Test public void newJsUriWithEmptyOriginalUri() throws Exception { JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, null, Collections.<String>emptyList(), null); // Null URI. assertEquals(RenderingContext.GADGET, jsUri.getContext()); assertEquals(ContainerConfig.DEFAULT_CONTAINER, jsUri.getContainer()); assertEquals(JsCompileMode.COMPILE_CONCAT, jsUri.getCompileMode()); assertFalse(jsUri.isJsload()); assertFalse(jsUri.isNoCache()); assertFalse(jsUri.isNohint()); assertNull(jsUri.getOnload()); assertTrue(jsUri.getLibs().isEmpty()); assertTrue(jsUri.getLoadedLibs().isEmpty()); assertNull(jsUri.getOrigUri()); }
@Test public void newJsUriWithEmptyOriginalUri() throws Exception { JsUriManager.JsUri jsUri = new JsUriManager.JsUri(STATUS, null, Collections.<String>emptyList(), null); // Null URI. assertEquals(RenderingContext.GADGET, jsUri.getContext()); assertEquals(ContainerConfig.DEFAULT_CONTAINER, jsUri.getContainer()); assertEquals(JsCompileMode.COMPILE_CONCAT, jsUri.getCompileMode()); assertFalse(jsUri.isJsload()); assertFalse(jsUri.isNoCache()); assertFalse(jsUri.isNohint()); assertNull(jsUri.getOnload()); assertTrue(jsUri.getLibs().isEmpty()); assertTrue(jsUri.getLoadedLibs().isEmpty()); assertNull(jsUri.getOrigUri()); }
protected final List<String> getExports(FeatureBundle bundle, JsUri jsUri) { // Add exports of bundle, regardless. if (jsUri.getCompileMode() == JsCompileMode.CONCAT_COMPILE_EXPORT_ALL) { return bundle.getApis(ApiDirective.Type.JS, true); // Add exports of bundle if it is an explicitly-specified feature. } else if (jsUri.getCompileMode() == JsCompileMode.CONCAT_COMPILE_EXPORT_EXPLICIT) { if (jsUri.getLibs().contains(bundle.getName())) { return bundle.getApis(ApiDirective.Type.JS, true); } } return Lists.newArrayList(); }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); replay(result); return result; }
private JsUri mockJsUri(JsCompileMode mode, boolean isJsload, List<String> libs) { JsUri result = createMock(JsUri.class); expect(result.getCompileMode()).andStubReturn(mode); expect(result.getRepository()).andStubReturn(null); expect(result.isJsload()).andReturn(isJsload).anyTimes(); expect(result.getLibs()).andReturn(libs).anyTimes(); expect(result.getLoadedLibs()).andReturn(LOADED).anyTimes(); replay(result); return result; }
public boolean process(JsRequest jsRequest, JsResponseBuilder builder) throws JsException { if (jsRequest.getJsUri().getCompileMode() != JsCompileMode.COMPILE_CONCAT) { builder.prependJs("(function(){", "[js-anon-wrapper]"); builder.appendJs("})();", "[js-anon-wrapper]"); } return true; } }