/* * © Copyright IBM Corp. 2013 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.ibm.sbt.test.sample.framework; import static org.junit.Assert.assertTrue; import java.util.List; import org.junit.Ignore; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import com.ibm.sbt.automation.core.test.BaseSampleFrameworkTest; import com.ibm.sbt.automation.core.test.pageobjects.SampleFrameworkResultPage; /** * @author Francis * @since 24 May 2013 */ public class SampleFrameworkJavaScript extends BaseSampleFrameworkTest { public SampleFrameworkJavaScript() { snippetType = SnippetType.JAVASCRIPTFRAMEWORK; } @Test @Ignore public void testFramework() { SampleFrameworkResultPage resultPage = launchSampleFramework(); assertTrue("Expected the main container to be displayed", checkMainContent(resultPage)); assertTrue("Expected tree to be displayed", checkTree(resultPage)); if(getTestEnvironment().isSmartCloud()) assertTrue("Expected the smartcloud navigation bar to be present", checkSmartcloudNavBar(resultPage)); clickLeafNode(resultPage); assertTrue("Expected the code divs to contain code after clicking leaf node", checkCodeDivs(resultPage)); toIframeContext(resultPage); assertTrue("Expected iframe to contain html after clicking leaf node", checkIframe(resultPage)); } /* * Check if the js snippet has some content, and test that the nav bar works. * * @param snippetId - the sample framework page * @return true if displayed */ private boolean checkCodeDivs(SampleFrameworkResultPage resultPage) { WebElement jsDiv = resultPage.getJsSnippetDiv(); String jsContent = jsDiv.getAttribute("innerHTML"); WebElement ulNav = resultPage.getCodeNav(); List<WebElement> tabList = ulNav.findElements(By.xpath(".//a")); WebDriverWait wait = new WebDriverWait(resultPage.getWebDriver(), 5l); tabList.get(1).click(); boolean htmlDivDisplayed = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(SampleFrameworkResultPage.HTMLSNIPPETDIV))).isDisplayed(); tabList.get(2).click(); boolean cssDivDisplayed = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(SampleFrameworkResultPage.CSSSNIPPETDIV))).isDisplayed(); tabList.get(3).click(); boolean docDivDisplayed = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(SampleFrameworkResultPage.DOCSNIPPETDIV))).isDisplayed(); return jsContent != null && htmlDivDisplayed && cssDivDisplayed && docDivDisplayed; } }