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.Test; import java.io.IOException; import static com.google.common.collect.Lists.newArrayList; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; /** * */ public class TestExtensionWizard { 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 testCreate() throws IOException { SpeakeasyUserPage page = product.getPageBinder().bind(SpeakeasyUserPage.class) .openInstallDialog() .openCreateExtensionDialog() .key("myextension") .name("My \"Dog's\" Extension") .description("Foo's \"Ext\"\n") .create(); SpeakeasyUserPage.PluginRow row = page.getPlugins().get("myextension"); assertNotNull(row); assertEquals("My \"Dog's\" Extension", row.getName()); assertEquals("Foo's \"Ext\"", row.getDescription()); assertEquals("myextension", row.getKey()); page.uninstallPlugin("myextension"); } @Test public void testEditPlugin() throws IOException { product.getPageBinder().bind(SpeakeasyUserPage.class) .openInstallDialog() .openCreateExtensionDialog() .key("myextension") .name("My Extension") .description("Foo") .create() .openEditDialog("myextension") .editAndSaveFile("css/main.css", "#bar { display: block; }") .done() .enablePlugin("myextension"); SpeakeasyUserPage page = product.visit(SpeakeasyUserPage.class); ExampleBanner banner = product.getPageBinder().bind(ExampleBanner.class); assertTrue(banner.isFooVisible()); assertTrue(banner.isBarVisible()); page.uninstallPlugin("myextension"); } }