/** * */ package com.google.gwt.chrome.crx.linker.emiter; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; import static org.mockito.Mockito.verify; import org.mockito.MockitoAnnotations; import com.google.gwt.chrome.crx.client.ContentScript; import com.google.gwt.core.ext.GeneratorContext; import com.google.gwt.core.ext.TreeLogger; import com.google.gwt.core.ext.UnableToCompleteException; import com.google.gwt.core.ext.typeinfo.JClassType; import com.google.gwt.core.ext.typeinfo.JPackage; /** * @author webdizz * */ public class ContentScriptEmiterTest { @Mock private TreeLogger logger; @Mock private GeneratorContext context; @Mock private JClassType userType; @Before public void setUp() { MockitoAnnotations.initMocks(this); when(userType.getSimpleSourceName()).thenReturn(Emiter.CONTENTSCRIPT_USER_TYPE); JPackage jpackage = mock(JPackage.class); when(userType.getPackage()).thenReturn(jpackage); } @Test(expected = UnableToCompleteException.class) public void shouldThrowUnableToCompleteExceptionArtifactWithoutManifestAnnotation() throws UnableToCompleteException { when(userType.getAnnotation(ContentScript.ManifestInfo.class)).thenReturn(null); invokeCodeEmition(); } @Test public void shouldGatherContentScriptFromSpec() throws UnableToCompleteException { ContentScript.ManifestInfo spec = mock(ContentScript.ManifestInfo.class); when(userType.getAnnotation(ContentScript.ManifestInfo.class)).thenReturn(spec); invokeCodeEmition(); verify(spec).path(); verify(spec).runAt(); verify(spec).whiteList(); } protected void invokeCodeEmition() throws UnableToCompleteException { Emiter emiter = new ContentScriptEmiter(); emiter.emit(logger, context, userType, Emiter.CONTENTSCRIPT_USER_TYPE); } }