You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2017/03/20 20:58:46 UTC
[03/48] wicket git commit: Modify StatelessCheckerTest And fix bug.
Modify StatelessCheckerTest And fix bug.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/c39fbdc9
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/c39fbdc9
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/c39fbdc9
Branch: refs/heads/master
Commit: c39fbdc99e142c6b2c27ea79c34fe6dda98c9ec2
Parents: 20c2b89
Author: kensakurai <sa...@gmail.com>
Authored: Sat Feb 18 19:48:33 2017 +0900
Committer: kensakurai <sa...@gmail.com>
Committed: Sat Feb 18 19:48:33 2017 +0900
----------------------------------------------------------------------
.../StatelessCheckFailureException.java | 2 +-
.../devutils/stateless/StatelessChecker.java | 4 +
.../stateless/StatelessCheckerTest.java | 126 +++++++++++--------
3 files changed, 78 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/c39fbdc9/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessCheckFailureException.java
----------------------------------------------------------------------
diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessCheckFailureException.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessCheckFailureException.java
index b87e79a..84def0a 100644
--- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessCheckFailureException.java
+++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessCheckFailureException.java
@@ -42,7 +42,7 @@ public class StatelessCheckFailureException extends WicketRuntimeException
*/
public StatelessCheckFailureException(Component component, String reason)
{
- super("'" + component + "' claims to be stateless but isn't. ");
+ super("'" + component + "' claims to be stateless but isn't." + reason);
this.component = component;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/c39fbdc9/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessChecker.java
----------------------------------------------------------------------
diff --git a/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessChecker.java b/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessChecker.java
index b2a7a32..5312b2f 100644
--- a/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessChecker.java
+++ b/wicket-devutils/src/main/java/org/apache/wicket/devutils/stateless/StatelessChecker.java
@@ -120,6 +120,7 @@ public class StatelessChecker implements IComponentOnBeforeRenderListener
reason = " Stateful behaviors: " + statefulBehaviors.join();
}
fail(new StatelessCheckFailureException(component, reason));
+ return;
}
if (component instanceof MarkupContainer)
@@ -130,6 +131,7 @@ public class StatelessChecker implements IComponentOnBeforeRenderListener
if (o != null)
{
fail(new StatelessCheckFailureException(container, " Offending component: " + o));
+ return;
}
}
@@ -139,10 +141,12 @@ public class StatelessChecker implements IComponentOnBeforeRenderListener
if (!p.isBookmarkable())
{
fail(new StatelessCheckFailureException(p, " Only bookmarkable pages can be stateless"));
+ return;
}
if (!p.isPageStateless())
{
fail(new StatelessCheckFailureException(p, " for unknown reason"));
+ return;
}
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/c39fbdc9/wicket-devutils/src/test/java/org/apache/wicket/devutils/stateless/StatelessCheckerTest.java
----------------------------------------------------------------------
diff --git a/wicket-devutils/src/test/java/org/apache/wicket/devutils/stateless/StatelessCheckerTest.java b/wicket-devutils/src/test/java/org/apache/wicket/devutils/stateless/StatelessCheckerTest.java
index 41df859..0d16468 100644
--- a/wicket-devutils/src/test/java/org/apache/wicket/devutils/stateless/StatelessCheckerTest.java
+++ b/wicket-devutils/src/test/java/org/apache/wicket/devutils/stateless/StatelessCheckerTest.java
@@ -87,14 +87,27 @@ public class StatelessCheckerTest extends Assert
}
}
- private final StatelessChecker checker = new StatelessChecker();
+ /**
+ * StatelessCheckerQuietly
+ */
+ private static class StatelessCheckerQuietly extends StatelessChecker
+ {
+ private StatelessCheckFailureException ex;
- private final StatelessChecker checkerQuietly = new StatelessChecker() {
protected void fail(StatelessCheckFailureException e)
{
- // Do Nothing...
+ this.ex = e;
}
- };
+
+ public StatelessCheckFailureException getFailureException()
+ {
+ return ex;
+ }
+ }
+
+ private StatelessChecker checker;
+
+ private StatelessCheckerQuietly checkerQuietly;
private WicketTester tester;
@@ -105,6 +118,8 @@ public class StatelessCheckerTest extends Assert
public void setUp()
{
tester = new WicketTester();
+ checker = new StatelessChecker();
+ checkerQuietly = new StatelessCheckerQuietly();
}
/**
@@ -119,95 +134,100 @@ public class StatelessCheckerTest extends Assert
@Test
public void testNonBookmarkablePage()
{
- boolean hit1 = false;
try
{
- tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checker);
- tester.startPage(StatelessPage.class);
+ startNonBookmarkablePage(checker);
+ fail("Expected tester.startPage() to fail with StatelessCheckFailureException");
}
catch (StatelessCheckFailureException ex)
{
- hit1 = true;
+ assertNonBookmarkablePage(ex);
}
- boolean hit = hit1;
- assertTrue("Expected exception", hit);
}
@Test
public void testNonBookmarkablePageQuietly()
{
- boolean hit1 = false;
+ startNonBookmarkablePage(checkerQuietly);
+ StatelessCheckFailureException ex = checkerQuietly.getFailureException();
+ assertNonBookmarkablePage(ex);
+ }
+
+ private void startNonBookmarkablePage(StatelessChecker checker)
+ {
+ tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checker);
+ tester.startPage(StatelessPage.class);
+ }
+
+ private void assertNonBookmarkablePage(StatelessCheckFailureException ex) {
+ assertEquals("'[Page class = org.apache.wicket.devutils.stateless.StatelessCheckerTest$StatelessPage, id = 0, render count = 1]' claims to be stateless but isn't. Offending component: [TestLink [Component id = testPage]]", ex.getMessage());
+ assertEquals(StatelessPage.class, ex.getComponent().getClass());
+ }
+
+ @Test
+ public void testStatefulBehaviors()
+ {
try
{
- tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checkerQuietly);
- tester.startPage(StatelessPage.class);
+ startComponentInPage(checker, new StatelessLabel("foo").add(new StatefulBehavior()));
+ fail("Expected tester.startComponentInPage() to fail with StatelessCheckFailureException");
}
catch (StatelessCheckFailureException ex)
{
- hit1 = true;
+ assertStatefulBehaviors(ex);
}
- boolean hit = hit1;
- assertFalse("Expected exception", hit);
}
@Test
- public void testStatefulBehaviors()
- {
- boolean hit = isHitBehaviors(checker);
- assertTrue("Expected exception", hit);
- }
- @Test
public void testStatefulBehaviorsQuietly()
{
- boolean hit = isHitBehaviors(checkerQuietly);
- assertFalse("Expected exception", hit);
+ startComponentInPage(checkerQuietly, new StatelessLabel("foo").add(new StatefulBehavior()));
+ StatelessCheckFailureException ex = checkerQuietly.getFailureException();
+ assertStatefulBehaviors(ex);
}
- @Test
- public void testPositive()
- {
+ private void startComponentInPage(StatelessChecker checker, Component foo) {
tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checker);
- tester.startComponentInPage(new StatelessLabel("foo"));
+ tester.startComponentInPage(foo);
}
- @Test
- public void testStatefulMarkupContainer() {
- boolean hit = isHitMarkupContainer(checker);
- assertTrue("Expected exception", hit);
+ private void assertStatefulBehaviors(StatelessCheckFailureException ex) {
+ assertEquals("'[Component id = foo]' claims to be stateless but isn't. Stateful behaviors: org.apache.wicket.devutils.stateless.StatelessCheckerTest$StatefulBehavior", ex.getMessage());
+ assertEquals(StatelessLabel.class, ex.getComponent().getClass());
}
@Test
- public void testStatefulMarkupContainerQuietly() {
- boolean hit = isHitMarkupContainer(checkerQuietly);
- assertFalse("Expected exception", hit);
+ public void testPositive()
+ {
+ startComponentInPage(checker, new StatelessLabel("foo"));
}
- private boolean isHitMarkupContainer(StatelessChecker checker) {
- boolean hit = false;
+ @Test
+ public void testStatefulMarkupContainer()
+ {
try
{
- tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checker);
- tester.startComponentInPage(new StatefulMarkupContainer("foo"));
+ startComponentInPage(checker, new StatefulMarkupContainer("foo"));
+ fail("Expected tester.startComponentInPage() to fail with StatelessCheckFailureException");
}
catch (StatelessCheckFailureException ex)
{
- hit = true;
+ assertStatefulMarkupContainer(ex);
}
- return hit;
}
- private boolean isHitBehaviors(StatelessChecker checker) {
- boolean hit = false;
- try
- {
- tester.getApplication().getComponentPostOnBeforeRenderListeners().add(checker);
- tester.startComponentInPage(new StatelessLabel("foo").add(new StatefulBehavior()));
- }
- catch (StatelessCheckFailureException ex)
- {
- hit = true;
- }
- return hit;
+ @Test
+ public void testStatefulMarkupContainerQuietly()
+ {
+ startComponentInPage(checkerQuietly, new StatefulMarkupContainer("foo"));
+ StatelessCheckFailureException ex = checkerQuietly.getFailureException();
+ assertStatefulMarkupContainer(ex);
+
}
+ private void assertStatefulMarkupContainer(StatelessCheckFailureException ex)
+ {
+ assertEquals("'[StatefulMarkupContainer [Component id = foo]]' claims to be stateless but isn't. Possible reason: no stateless hint", ex.getMessage());
+ assertEquals(StatefulMarkupContainer.class, ex.getComponent().getClass());
+ }
}