001: // Copyright © 2002-2007 Canoo Engineering AG, Switzerland.
002: package com.canoo.webtest.steps.verify;
003:
004: import junit.framework.AssertionFailedError;
005:
006: import com.canoo.webtest.self.TestBlock;
007: import com.canoo.webtest.self.ThrowAssert;
008: import com.canoo.webtest.steps.BaseStepTestCase;
009: import com.canoo.webtest.steps.Step;
010: import com.canoo.webtest.steps.store.StoreCookie;
011: import com.canoo.webtest.steps.store.StoreCookieTest;
012:
013: /**
014: * Test class for {@link VerifyCookie}.<p>
015: *
016: * @author Denis N. Antonioli
017: * @author Paul King
018: * @author Marc Guillemot
019: */
020: public class VerifyCookieTest extends BaseStepTestCase {
021:
022: private VerifyCookie fVerifyStep;
023:
024: protected Step createStep() {
025: return new VerifyCookie();
026: }
027:
028: private void addCookie(final String name, final String value) {
029: StoreCookieTest.addCookie(getContext(), name, value);
030: }
031:
032: protected void setUp() throws Exception {
033: super .setUp();
034: fVerifyStep = (VerifyCookie) getStep();
035: assertEquals(0, StoreCookie.getCookies(getContext()).length);
036: }
037:
038: public void testVerifyParametersWithoutName() {
039: assertStepRejectsNullParam("name", new TestBlock() {
040: public void call() throws Exception {
041: fVerifyStep.setText("some text");
042: executeStep(fVerifyStep);
043: }
044: });
045: }
046:
047: public void testVerifyParametersWithoutPreviousPage() {
048: fVerifyStep.setText("some text");
049: fVerifyStep.setName("2046");
050: assertStepRejectsNullResponse(fVerifyStep);
051: }
052:
053: public void testNoCookieSet() {
054: final String name = "SessionID";
055: fVerifyStep.setName(name);
056: fVerifyStep.setText("42");
057: assertFailOnExecute(fVerifyStep, "Cookie not defined",
058: "No cookie available!");
059: }
060:
061: public void testCookieNotSet() {
062: final String name = "SessionID";
063: addCookie("Not" + name, "2046");
064: fVerifyStep.setName(name);
065: fVerifyStep.setText("42");
066: assertFailOnExecute(fVerifyStep, "Cookie not defined",
067: "Cookie \"" + name + "\" not set!");
068: }
069:
070: public void testCookieSetWithWrongValue() {
071: final String name = "SessionID";
072: final String value = "42";
073: addCookie(name, value);
074: fVerifyStep.setName(name);
075: fVerifyStep.setText("Not " + value);
076: assertFailOnExecute(fVerifyStep, "Cookie has other value",
077: "Wrong cookie \"" + name + "\" value found!");
078: }
079:
080: public void testCookieExistence() throws Exception {
081: final String name = "SessionID";
082: final String value = "42";
083: addCookie(name, value);
084: fVerifyStep.setName(name);
085: executeStep(fVerifyStep);
086: }
087:
088: public void testCookieSetWithCorrectValue() throws Exception {
089: final String name = "SessionID";
090: final String value = "42";
091: addCookie(name, value);
092: fVerifyStep.setName(name);
093: fVerifyStep.setText(value);
094: executeStep(fVerifyStep);
095: }
096:
097: public void testSelf() {
098: // coverage hack
099: fVerifyStep.setName("SessionID");
100: fVerifyStep.setText("42");
101: ThrowAssert.assertThrows("hack", AssertionFailedError.class,
102: new TestBlock() {
103: public void call() throws Exception {
104: assertFailOnExecute(fVerifyStep,
105: "coverage hack", "wrong message prefix");
106: }
107: });
108: }
109:
110: }
|