package it.com.atlassian.labs.speakeasy; import com.atlassian.pageobjects.TestedProduct; import com.atlassian.pageobjects.page.HomePage; import com.atlassian.pageobjects.page.LoginPage; import com.atlassian.webdriver.pageobjects.WebDriverTester; import org.junit.After; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import java.io.File; import java.io.IOException; import java.util.List; import static it.com.atlassian.labs.speakeasy.ExtensionBuilder.buildSimplePluginFile; import static org.junit.Assert.*; import static org.junit.Assert.assertTrue; /** * */ public class TestInstall { private static TestedProduct<?> product = OwnerOfTestedProduct.INSTANCE; @Before public void login() { product.visit(LoginPage.class).loginAsSysAdmin(SpeakeasyUserPage.class); } @After public void logout() { ((WebDriverTester)product.getTester()).getDriver().manage().deleteAllCookies(); } @Test public void testInstallPlugin() throws IOException { File jar = buildSimplePluginFile(); SpeakeasyUserPage page = product.getPageBinder().bind(SpeakeasyUserPage.class) .openInstallDialog() .uploadPlugin(jar); List<String> messages = page.getSuccessMessages(); assertEquals(1, messages.size()); assertTrue(messages.get(0).contains("Test Plugin")); assertTrue(page.getPluginKeys().contains("test2")); SpeakeasyUserPage.PluginRow row = page.getPlugins().get("test2"); assertNotNull(row); assertEquals("test2", row.getKey()); assertEquals("Test Plugin", row.getName()); assertEquals("Desc", row.getDescription()); assertEquals("A. D. Ministrator (Sysadmin)", row.getAuthor()); assertTrue(page.canExecute("test2", ExtensionOperations.UNINSTALL)); assertTrue(page.canExecute("test2", ExtensionOperations.EDIT)); assertTrue(page.canExecute("test2", ExtensionOperations.DOWNLOAD)); assertTrue(page.canExecute("test2", ExtensionOperations.FORK)); // verify on reload page = product.visit(SpeakeasyUserPage.class); assertTrue(page.getPluginKeys().contains("test2")); row = page.getPlugins().get("test2"); assertNotNull(row); assertEquals("test2", row.getKey()); assertEquals("Test Plugin", row.getName()); assertEquals("Desc", row.getDescription()); assertEquals("A. D. Ministrator (Sysadmin)", row.getAuthor()); page.uninstallPlugin("test2"); } @Test @Ignore public void testInstallLotsOfPlugin() throws IOException { SpeakeasyUserPage page = product.getPageBinder().bind(SpeakeasyUserPage.class); for (int x=0; x < 100; x++) { File jar = buildSimplePluginFile("test-" + x, "Test " + x); page = page.openInstallDialog().uploadPlugin(jar); } } }