diff --git a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js index 60228ce38e..1350693f82 100644 --- a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js +++ b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.panel.js @@ -73,6 +73,7 @@ Sonia.repository.Panel = Ext.extend(Sonia.rest.Panel, { var toolbar = []; if ( admin ){ toolbar.push({ + id: 'repositoryAddButton', xtype: 'tbbutton', text: this.addText, icon: this.addIcon, diff --git a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.settingsformpanel.js b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.settingsformpanel.js index 3987f2076c..956934cee5 100644 --- a/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.settingsformpanel.js +++ b/scm-webapp/src/main/webapp/resources/js/repository/sonia.repository.settingsformpanel.js @@ -45,6 +45,7 @@ Sonia.repository.SettingsFormPanel = Ext.extend(Sonia.repository.FormPanel, { helpText: this.nameHelpText, vtype: 'repositoryName' },{ + id: 'repositoryType', fieldLabel: this.typeText, name: 'type', xtype: 'combo', diff --git a/scm-webapp/src/test/java/sonia/scm/selenium/AuthenticationITCase.java b/scm-webapp/src/test/java/sonia/scm/selenium/AuthenticationITCase.java index 105fbb1100..73ef171c99 100644 --- a/scm-webapp/src/test/java/sonia/scm/selenium/AuthenticationITCase.java +++ b/scm-webapp/src/test/java/sonia/scm/selenium/AuthenticationITCase.java @@ -51,7 +51,7 @@ public class AuthenticationITCase extends SeleniumTestBase @Test public void testAuthentication() throws Exception { - authenticate("scmadmin", "scmadmin"); + login("scmadmin", "scmadmin"); logout(); } } diff --git a/scm-webapp/src/test/java/sonia/scm/selenium/RepositoryCRUDITCase.java b/scm-webapp/src/test/java/sonia/scm/selenium/RepositoryCRUDITCase.java new file mode 100644 index 0000000000..f3e75ec46b --- /dev/null +++ b/scm-webapp/src/test/java/sonia/scm/selenium/RepositoryCRUDITCase.java @@ -0,0 +1,90 @@ +/** + * Copyright (c) 2010, Sebastian Sdorra All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. 2. Redistributions in + * binary form must reproduce the above copyright notice, this list of + * conditions and the following disclaimer in the documentation and/or other + * materials provided with the distribution. 3. Neither the name of SCM-Manager; + * nor the names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * http://bitbucket.org/sdorra/scm-manager + * + */ + + + +package sonia.scm.selenium; + +//~--- non-JDK imports -------------------------------------------------------- + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + +/** + * + * @author Sebastian Sdorra + */ +public class RepositoryCRUDITCase extends SeleniumTestBase +{ + + /** + * Method description + * + */ + @After + public void after() + { + logout(); + } + + /** + * Method description + * + */ + @Test + public void createRepository() + { + waitAndClick("#repositoryAddButton"); + waitForPresence("input[name=name]").sendKeys("scm"); + select("#x-form-el-repositoryType img").click(); + waitAndClick("div.x-combo-list-item:nth-of-type(2)"); + type("input[name=contact]", "scmadmin@scm-manager.org"); + type("textarea[name=description]", "SCM-Manager"); + waitAndClick("div.x-panel-btns button:nth-of-type(1)"); + + String name = + waitForPresence( + "div.x-grid3-row-selected div.x-grid3-col-name").getText(); + + assertEquals("scm", name); + } + + /** + * Method description + * + */ + @Before + public void login() + { + login("scmadmin", "scmadmin"); + } +} diff --git a/scm-webapp/src/test/java/sonia/scm/selenium/SeleniumTestBase.java b/scm-webapp/src/test/java/sonia/scm/selenium/SeleniumTestBase.java index 356c77fdba..547332f386 100644 --- a/scm-webapp/src/test/java/sonia/scm/selenium/SeleniumTestBase.java +++ b/scm-webapp/src/test/java/sonia/scm/selenium/SeleniumTestBase.java @@ -111,7 +111,7 @@ public class SeleniumTestBase * @param username * @param password */ - protected void authenticate(String username, String password) + protected void login(String username, String password) { type("input[name=username]", username); type("input[name=password]", password); @@ -238,7 +238,7 @@ public class SeleniumTestBase */ protected WebElement waitForPresence(String query) { - WebDriverWait wait = new WebDriverWait(driver, 2); + WebDriverWait wait = new WebDriverWait(driver, 5); return wait.until( ExpectedConditions.presenceOfElementLocated(By.cssSelector(query))); @@ -254,7 +254,7 @@ public class SeleniumTestBase */ protected WebElement waitToBeClickable(String query) { - WebDriverWait wait = new WebDriverWait(driver, 2); + WebDriverWait wait = new WebDriverWait(driver, 5); return wait.until( ExpectedConditions.elementToBeClickable(By.cssSelector(query)));