package org.tynamo.examples.simple.functional;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import org.testng.annotations.Test;
import org.tynamo.examples.simple.integration.BaseIntegrationTest;
public class SearchTest extends BaseIntegrationTest
{
@Test
public void testSearch() throws Exception
{
// Only with this test, for some reason getting:
// Caused by: net.sourceforge.htmlunit.corejs.javascript.WrappedException: Wrapped com.gargoylesoftware.htmlunit.ScriptException:
// Exception invoking jsxSet_innerHTML (http://localhost:8180/assets/0.0.1-SNAPSHOT/stack/en/core.js#7672)
// Caused by: com.gargoylesoftware.htmlunit.ScriptException: missing ; before statement (JavaScript URL#1)
webClient.getOptions().setJavaScriptEnabled(false);
HtmlPage listApplesPage = clickLink(startPage, "List Apples");
HtmlPage newApplePage = clickLink(listApplesPage, "New Apple");
HtmlForm form = newApplePage.getHtmlElementById("form");
form.getInputByName("color").setValueAttribute("Blue");
form.getSelectByName("origin").setSelectedAttribute("AMERICA", true);
listApplesPage = clickButton(newApplePage, "saveAndReturn");
webClient.getOptions().setJavaScriptEnabled(true);
// FIXME Search page not implemented yet
// HtmlPage searchApplesPage = clickLink(listApplesPage, "Search Apples");
// newApplePage.getHtmlElementById("form").getInputByName("color").setValueAttribute("Blue");
// listApplesPage = clickButton(searchApplesPage, "Search");
// assertXPathPresent(listApplesPage, "//td[text() = 'Blue']");
// searchApplesPage = clickLink(listApplesPage, "Search Apples");
// searchApplesPage.getHtmlElementById("searchform").getInputByName("color").setValueAttribute("lu");
// listApplesPage = clickButton(searchApplesPage, "Search");
// assertXPathPresent(listApplesPage, "//td[text() = 'Blue']");
}
// @Test
// FIXME Search not implemented yet
public void testSearchByEnum() throws Exception
{
HtmlPage listApplesPage = clickLink(startPage, "List Apples");
HtmlPage newApplePage = clickLink(listApplesPage, "New Apple");
HtmlForm form = newApplePage.getHtmlElementById("form");
form.getInputByName("color").setValueAttribute("Red");
form.getSelectByName("origin").setSelectedAttribute("OCEANIA", true);
listApplesPage = clickButton(newApplePage, "Ok");
HtmlPage searchApplesPage = clickLink(listApplesPage, "Search Apples");
searchApplesPage.<HtmlForm>getHtmlElementById("searchform").getSelectByName("origin").setSelectedAttribute("OCEANIA", true);
listApplesPage = clickButton(searchApplesPage, "Search");
assertXPathPresent(listApplesPage, "//td[text() = 'Red']");
assertXPathNotPresent(listApplesPage, "//td[text() = 'Blue']");
searchApplesPage = clickLink(listApplesPage, "Search Apples");
searchApplesPage.<HtmlForm>getHtmlElementById("searchform").getSelectByName("origin").setSelectedAttribute("EUROPE", true);
listApplesPage = clickButton(searchApplesPage, "Search");
assertXPathNotPresent(listApplesPage, "//td[text() = 'Blue']");
assertXPathNotPresent(listApplesPage, "//td[text() = 'Red']");
}
}