/* * © Copyright IBM Corp. 2012 * * 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.automation.core.test.pageobjects; import java.util.List; import org.junit.Assert; import org.openqa.selenium.By; import org.openqa.selenium.WebElement; import com.ibm.commons.util.io.json.JsonJavaFactory; import com.ibm.commons.util.io.json.JsonJavaObject; import com.ibm.commons.util.io.json.JsonParser; import com.ibm.sbt.automation.core.environment.TestEnvironmentFactory; /** * @author mwallace * * @since 5 Mar 2013 */ public class JavaScriptPreviewPage extends BaseResultPage { private ResultPage delegate; public JavaScriptPreviewPage(ResultPage delegate) { this.delegate = delegate; setWebDriver(delegate.getWebDriver()); } /* (non-Javadoc) * @see com.ibm.sbt.automation.core.test.pageobjects.ResultPage#getText() */ @Override public String getText() { return delegate.getText(); } /* (non-Javadoc) * @see com.ibm.sbt.automation.core.test.pageobjects.ResultPage#getWebElement() */ @Override public WebElement getWebElement() { return delegate.getWebElement(); } /** * Return the contents of the content div */ public String getContent() { WebElement webElement = getWebElement(); return webElement.findElement(By.id("content")).getText(); } /** * Return the contents of the json div */ public String getJsonContent() { return getElementTextContent("json"); } protected String getElementTextContent(String divId) { TestEnvironmentFactory.getEnvironment().waitForText("json", 10); WebElement webElement = getWebElement(); String divText = webElement.findElement(By.id(divId)).getText(); return divText; } /** * Return the contents of the json div as a JSON object */ public JsonJavaObject getJson() { String text= getElementTextContent("json"); try { return (JsonJavaObject)JsonParser.fromJson(JsonJavaFactory.instanceEx, text); } catch (Throwable t) { Assert.fail("Unable to parse JSON Object from: " + text); return null; } } /** * Return the contents of the json div as a list of JSON objects */ public List getJsonList() { String text= getElementTextContent("json"); try { return (List)JsonParser.fromJson(JsonJavaFactory.instanceEx, text); } catch (Throwable t) { Assert.fail("Unable to parse JSON List from page text: " + text); return null; } } }