/** * ============================================================================= * * ORCID (R) Open Source * http://orcid.org * * Copyright (c) 2012-2014 ORCID, Inc. * Licensed under an MIT-Style License (MIT) * http://orcid.org/open-source-license * * This copyright and license information (including a link to the full license) * shall be included in its entirety in all copies or substantial portion of * the software. * * ============================================================================= */ package org.orcid.integration.blackbox.web.works; import static org.junit.Assert.assertEquals; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.openqa.selenium.By; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.orcid.integration.blackbox.api.BlackBoxBase; import org.springframework.beans.factory.annotation.Value; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:test-context.xml" }) public class PrivacyWorksTest extends BlackBoxBase { @Value("${org.orcid.web.baseUri}") public String baseUri; @Value("${org.orcid.web.testUser1.username}") public String user1UserName; @Value("${org.orcid.web.testUser1.password}") public String user1Password; private String PRIVACY_WORKS_TEST = "PRIVACY_WORKS_TEST"; private String _A = "_A"; private String _B = "_B"; private String _C = "_C"; @Before public void before() { signin(); } @After public void after() { signout(); } @Test public void addThreeSimple() { WebDriverWait wait = new WebDriverWait(webDriver, 10); AddWorksTest.waitWorksLoaded(wait, webDriver); // clean up any from previous test AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_A, webDriver); AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_B, webDriver); AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_C, webDriver); // Test actually begins AddWorksTest.addSimple(PRIVACY_WORKS_TEST+_A, webDriver); AddWorksTest.addSimple(PRIVACY_WORKS_TEST+_B, webDriver); AddWorksTest.addSimple(PRIVACY_WORKS_TEST+_C, webDriver); assertEquals(1, webDriver.findElements(AddWorksTest.byWorkTitle(PRIVACY_WORKS_TEST+_A)).size()); assertEquals(1, webDriver.findElements(AddWorksTest.byWorkTitle(PRIVACY_WORKS_TEST+_B)).size()); assertEquals(1, webDriver.findElements(AddWorksTest.byWorkTitle(PRIVACY_WORKS_TEST+_C)).size()); webDriver.findElement(selectPublicByTitle(PRIVACY_WORKS_TEST+_A)).click(); webDriver.findElement(selectLimitedByTitle(PRIVACY_WORKS_TEST+_B)).click(); webDriver.findElement(selectPrivateByTitle(PRIVACY_WORKS_TEST+_C)).click(); AddWorksTest.reloadWorks(webDriver, wait); wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(privIsVis(PRIVACY_WORKS_TEST+_A, "PUBLIC"))); wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(privIsVis(PRIVACY_WORKS_TEST+_B, "LIMITED"))); wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(privIsVis(PRIVACY_WORKS_TEST+_C, "PRIVATE"))); // clean up after test AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_A, webDriver); AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_B, webDriver); AddWorksTest.deleteAllByWorkName(PRIVACY_WORKS_TEST+_C, webDriver); } public static By selectPublicByTitle(String title) { return privSelectByTitle(title,1); } public static By selectLimitedByTitle(String title) { return privSelectByTitle(title,2); } public static By selectPrivateByTitle(String title) { return privSelectByTitle(title,3); } public static By privSelectByTitle(String title, int pos) { return By.xpath("//*[@orcid-put-code and descendant::span[text() = '" + title + "']]//ul[@class='privacyToggle']/li[" + pos + "]/a"); } public static By privIsVis(String title, String vis) { return By.xpath("//*[@orcid-put-code and descendant::span[text() = '" + title + "']]//ul[@class='privacyToggle']/li[@class='" + vis.toLowerCase() + "Active']"); } }