Created
June 7, 2012 22:33
-
-
Save jwmach1/2892113 to your computer and use it in GitHub Desktop.
Sitebricks acceptance test showing a web page with an optional path argument
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/ParameterizedPage.java b/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/ParameterizedPage.java | |
new file mode 100644 | |
index 0000000..4e9c7d2 | |
--- /dev/null | |
+++ b/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/ParameterizedPage.java | |
@@ -0,0 +1,33 @@ | |
+package com.google.sitebricks.example; | |
+ | |
+import com.google.inject.name.Named; | |
+import com.google.sitebricks.Show; | |
+import com.google.sitebricks.http.Get; | |
+ | |
+@Show("ParameterizedPage.html") | |
+public class ParameterizedPage { | |
+ | |
+ private static final String DEFAULT_ARGUMENT = "DEFAULT"; | |
+ private String arg; | |
+ | |
+ public ParameterizedPage() { | |
+ arg = DEFAULT_ARGUMENT; | |
+ } | |
+ | |
+ @Get | |
+ public void handleGetRequest(@Named("arg") String arg) { | |
+ if (arg != null && arg.length() > 0) { | |
+ this.arg = arg; | |
+ } | |
+ System.out.println("arg is " + arg + " in ParameterizedPage"); | |
+ } | |
+ | |
+ @Get | |
+ public void handleGetRequestNoArgumentGiven() { | |
+ arg = "no argument given"; | |
+ } | |
+ | |
+ public String getArg() { | |
+ return arg; | |
+ } | |
+} | |
diff --git a/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/SitebricksConfig.java b/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/SitebricksConfig.java | |
index 570afbd..f6cfcc1 100644 | |
--- a/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/SitebricksConfig.java | |
+++ b/sitebricks-acceptance-tests/src/main/java/com/google/sitebricks/example/SitebricksConfig.java | |
@@ -108,6 +108,9 @@ public class SitebricksConfig extends GuiceServletContextListener { | |
// templating by extension | |
at("/template").show(DecoratedPage.class); | |
+ | |
+ at("/parameterizedPage/:arg").show(ParameterizedPage.class); | |
+ at("/parameterizedPage/").show(ParameterizedPage.class); | |
embed(HelloWorld.class).as("Hello"); | |
} | |
diff --git a/sitebricks-acceptance-tests/src/main/resources/ParameterizedPage.html b/sitebricks-acceptance-tests/src/main/resources/ParameterizedPage.html | |
new file mode 100644 | |
index 0000000..e32dc63 | |
--- /dev/null | |
+++ b/sitebricks-acceptance-tests/src/main/resources/ParameterizedPage.html | |
@@ -0,0 +1,7 @@ | |
+<html> | |
+ | |
+<body> | |
+<div id="argValue">${arg}</div> | |
+</body> | |
+ | |
+</html> | |
\ No newline at end of file | |
diff --git a/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/ParameterizedPageAcceptanceTest.java b/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/ParameterizedPageAcceptanceTest.java | |
new file mode 100644 | |
index 0000000..64bc2d9 | |
--- /dev/null | |
+++ b/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/ParameterizedPageAcceptanceTest.java | |
@@ -0,0 +1,30 @@ | |
+package com.google.sitebricks.acceptance; | |
+ | |
+import org.openqa.selenium.WebDriver; | |
+import org.testng.annotations.Test; | |
+ | |
+import com.google.sitebricks.acceptance.page.ParameterizedPage; | |
+import com.google.sitebricks.acceptance.util.AcceptanceTest; | |
+ | |
+/** | |
+ * @author Dhanji R. Prasanna (dhanji@gmail.com) | |
+ */ | |
+@Test(suiteName = AcceptanceTest.SUITE) | |
+public class ParameterizedPageAcceptanceTest { | |
+ | |
+ public void shouldRenderDynamicTextFromArgument() { | |
+ WebDriver driver = AcceptanceTest.createWebDriver(); | |
+ ParameterizedPage page = ParameterizedPage.open(driver, "/parameterizedPage/pathargument"); | |
+ | |
+ assert page.hasArgument("pathargument") : "Did not pass path argument into the page and on to the template: " + page.getArgumentValue(); | |
+ } | |
+ | |
+ public void shouldRenderDefaultArgumentWhenNotGivenOnExtraPathInfo() { | |
+ WebDriver driver = AcceptanceTest.createWebDriver(); | |
+ ParameterizedPage page = ParameterizedPage.open(driver, "/parameterizedPage"); | |
+ | |
+ assert page.hasArgument("no argument given") : "Did not use the default argument in the page and on to the template, instead: " + page.getArgumentValue(); | |
+ } | |
+ | |
+ | |
+} | |
\ No newline at end of file | |
diff --git a/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/page/ParameterizedPage.java b/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/page/ParameterizedPage.java | |
new file mode 100644 | |
index 0000000..6587f16 | |
--- /dev/null | |
+++ b/sitebricks-acceptance-tests/src/test/java/com/google/sitebricks/acceptance/page/ParameterizedPage.java | |
@@ -0,0 +1,26 @@ | |
+package com.google.sitebricks.acceptance.page; | |
+ | |
+import org.openqa.selenium.WebDriver; | |
+import org.openqa.selenium.WebElement; | |
+import org.openqa.selenium.support.PageFactory; | |
+ | |
+import com.google.sitebricks.acceptance.util.AcceptanceTest; | |
+ | |
+public class ParameterizedPage { | |
+ | |
+ private WebElement argValue; | |
+ | |
+ public static ParameterizedPage open(WebDriver driver, String url) { | |
+ driver.get(AcceptanceTest.BASE_URL + url); | |
+ return PageFactory.initElements(driver, ParameterizedPage.class); | |
+ } | |
+ | |
+ | |
+ public boolean hasArgument(String argument) { | |
+ return argValue.getText().equals(argument); | |
+ } | |
+ | |
+ public String getArgumentValue() { | |
+ return argValue.getText(); | |
+ } | |
+} | |
\ No newline at end of file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment