HsacExamples.SlimTests.BrowserTests.UseCookiesForHttpTest


By taking cookies from a browser's session we can test REST services that are only accessible in after (complex) login procedures.

Here we don't actually test a login procedure. We just validate cookies are copied and subsequent requests by http test can change the cookies stored.

First http test on its own: 2nd request (with cookies from 1st) gets same cookie value.

script http test
set store cookies true
get from https://outlook.live.com/owa/
check response status 200
show response headers
Cache-Control private
Content-Length 36433
Content-Type text/html; charset=utf-8
Set-Cookie [ClientId=B1E76A9225834E4CA0BF85EF4CF1C4DC; expires=Tue, 16-Mar-2021 08:30:54 GMT; path=/;SameSite=None; secure, ClientId=B1E76A9225834E4CA0BF85EF4CF1C4DC; expires=Tue, 16-Mar-2021 08:30:54 GMT; path=/;SameSite=None; secure, RoutingKeyCookie=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, HostSwitchPrg=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, OptInPrg=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, logonLatency=LGN01=637199442540315094; domain=live.com; path=/; secure; HttpOnly, O365Consumer=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure]
request-id b0e6aa4b-204c-4d06-9769-339a3a4e834f
X-CalculatedFETarget MN2PR18CU001.internal.outlook.com
X-BackEndHttpStatus [200, 200]
X-FEProxyInfo MN2PR18CA0021.NAMPRD18.PROD.OUTLOOK.COM
X-CalculatedBETarget MN2PR17MB4048.NAMPRD17.PROD.OUTLOOK.COM
X-RUM-Validated 1
X-Content-Type-Options nosniff
X-BeSku WCS6
X-BackEnd-Begin 2020-03-16T08:30:54.030
X-BackEnd-End 2020-03-16T08:30:54.037
X-DiagInfo MN2PR17MB4048
X-BEServer MN2PR17MB4048
X-UA-Compatible IE=EmulateIE7
Strict-Transport-Security [max-age=31536000; includeSubDomains, max-age=31536000; includeSubDomains]
X-Proxy-RoutingCorrectness 1
X-Proxy-BackendServerStatus 200
X-FEServer [MN2PR18CA0021, CH2PR17CA0009]
X-MSEdge-Ref Ref A: C2CD7F31B47C46579E328F895841AE1C Ref B: CHGEDGE1216 Ref C: 2020-03-16T08:30:54Z
Date Mon, 16 Mar 2020 08:30:53 GMT
show cookie values
ClientId B1E76A9225834E4CA0BF85EF4CF1C4DC
logonLatency LGN01=637199442540315094
check not cookie value ClientId null
$clientId1<-[B1E76A9225834E4CA0BF85EF4CF1C4DC] cookie value ClientId
note see that we get same cookie value again
get from https://outlook.live.com/owa/
check response status 200
show response headers
Cache-Control private
Content-Length 36433
Content-Type text/html; charset=utf-8
Set-Cookie [RoutingKeyCookie=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, HostSwitchPrg=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, OptInPrg=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure, logonLatency=LGN01=637199442541582650; domain=live.com; path=/; secure; HttpOnly, O365Consumer=; expires=Fri, 16-Mar-1990 08:30:54 GMT; path=/; secure]
request-id 52a8d328-0657-480b-bacd-a1e7b8db607a
X-CalculatedBETarget CH2PR11MB4470.namprd11.prod.outlook.com
X-BackEndHttpStatus 200
X-RUM-Validated 1
X-Content-Type-Options nosniff
X-BeSku WCS5
X-BackEnd-Begin 2020-03-16T08:30:54.157
X-BackEnd-End 2020-03-16T08:30:54.167
X-DiagInfo CH2PR11MB4470
X-BEServer CH2PR11MB4470
X-UA-Compatible IE=EmulateIE7
Strict-Transport-Security max-age=31536000; includeSubDomains
X-Proxy-RoutingCorrectness 1
X-Proxy-BackendServerStatus 200
X-FEServer CH2PR11CA0029
X-MSEdge-Ref Ref A: D1FE15DC1BC14C4D827A4C9C6258C6B1 Ref B: CHGEDGE1111 Ref C: 2020-03-16T08:30:54Z
Date Mon, 16 Mar 2020 08:30:53 GMT
show cookie values
ClientId B1E76A9225834E4CA0BF85EF4CF1C4DC
logonLatency LGN01=637199442541582650
check cookie value ClientId $clientId1->[B1E76A9225834E4CA0BF85EF4CF1C4DC]

Then two requestes one by browser and one by plain http: again same cookie on 2nd request (but not the same as first table).

script browser test org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: -0.001 (Session info: chrome=80.0.3987.87) (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Windows NT 10.0.10586 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-1055-gcp', java.version: '1.8.0_242' Driver info: org.openqa.selenium.remote.RemoteWebDriver Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 80.0.3987.16 (320f6526c1632..., userDataDir: C:\Users\ADMINI~1\AppData\L...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:49760}, handlesAlerts: true, hasMetadata: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 80.0.3987.87, webStorageEnabled: true, webdriver.remote.sessionid: 74ed0e4e6eb242638abd370a507...} Session ID: 74ed0e4e6eb242638abd370a507c4669
open No Method open[1] in class nl.hsac.fitnesse.fixture.slim.HttpTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearCookies() -> void clearHeaderValue(java.lang.String) -> boolean clearHeaderValues() -> void clearValue(java.lang.String) -> boolean clearValues() -> void cookieAttribute(java.lang.String, java.lang.String) -> class java.lang.String cookieDomain(java.lang.String) -> class java.lang.String cookieIsHttpOnly(java.lang.String) -> class java.lang.Boolean cookieIsPersistent(java.lang.String) -> class java.lang.Boolean cookieIsSecure(java.lang.String) -> class java.lang.Boolean cookiePath(java.lang.String) -> class java.lang.String cookieValue(java.lang.String) -> class java.lang.String cookieValues() -> interface java.util.Map copyBrowserCookies() -> void copyHeaderValuesFrom(java.util.Map) -> void copyValuesFrom(java.util.Map) -> void delete(java.lang.String) -> boolean deleteWith(java.lang.String, java.lang.String) -> boolean deleteWithTemplate(java.lang.String) -> boolean disableCompression() -> void disableSSLVerification() -> void enableCompression() -> void enableSSLVerification() -> void equals(java.lang.Object) -> boolean expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getContentType() -> class java.lang.String getFileFrom(java.lang.String) -> class java.lang.String getFrom(java.lang.String) -> boolean getFromNoRedirect(java.lang.String) -> boolean getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getThrowExceptionOnHttpRequestFailure() -> boolean globalValue(java.lang.String) -> class java.lang.String hashCode() -> int headFrom(java.lang.String) -> boolean htmlResponse() -> class java.lang.String isExplicitContentTypeSet() -> boolean notify() -> void notifyAll() -> void patchWith(java.lang.String, java.lang.String) -> boolean patchWithTemplate(java.lang.String) -> boolean postFileTo(java.lang.String, java.lang.String) -> boolean postTemplateTo(java.lang.String) -> boolean postTemplateTo(java.lang.String, java.lang.String) -> boolean postTo(java.lang.String, java.lang.String) -> boolean postValuesTo(java.lang.String) -> boolean putFileTo(java.lang.String, java.lang.String) -> boolean putTemplateTo(java.lang.String) -> boolean putTo(java.lang.String, java.lang.String) -> boolean putValuesTo(java.lang.String) -> boolean repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long repeatUntilHeaderIs(java.lang.String, java.lang.Object) -> boolean repeatUntilResponseIs(java.lang.String) -> boolean repeatUntilResponseIsNot(java.lang.String) -> boolean repeatUntilResponseStatusIs(int) -> boolean request() -> class java.lang.String reset() -> void response() -> class java.lang.String responseHeader(java.lang.String) -> class java.lang.Object responseHeaders() -> interface java.util.Map responseIsValid() -> boolean responseStatus() -> int responseTime() -> long sendTemplateTo(java.lang.String, java.lang.String, java.lang.String) -> boolean set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBasicAuthorizationHeaderForUserAndPassword(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setContentType(java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIntValueFor(int, java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setStopTestOnException(boolean) -> void setStoreCookies(boolean) -> void setThrowExceptionOnHttpRequestFailure(boolean) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValueForHeader(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void stopTestOnException() -> boolean template(java.lang.String) -> boolean timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean https://outlook.live.com/owa/
$clientId<-[B1E76A9225834E4CA0BF85EF4CF1C4DC] cookie value ClientId
note see that we get different cookie value
check not cookie value ClientId $clientId1->[B1E76A9225834E4CA0BF85EF4CF1C4DC]
$requ<-[null] cookie value OWAPF
$loc= No Method location[0] in class nl.hsac.fitnesse.fixture.slim.HttpTest. Available methods: addValueTo(java.lang.Object, java.lang.String) -> void aroundSlimInvoke(fitnesse.slim.fixtureInteraction.FixtureInteraction, java.lang.reflect.Method, java.lang.Object[]) -> class java.lang.Object clearCookies() -> void clearHeaderValue(java.lang.String) -> boolean clearHeaderValues() -> void clearValue(java.lang.String) -> boolean clearValues() -> void cookieAttribute(java.lang.String, java.lang.String) -> class java.lang.String cookieDomain(java.lang.String) -> class java.lang.String cookieIsHttpOnly(java.lang.String) -> class java.lang.Boolean cookieIsPersistent(java.lang.String) -> class java.lang.Boolean cookieIsSecure(java.lang.String) -> class java.lang.Boolean cookiePath(java.lang.String) -> class java.lang.String cookieValue(java.lang.String) -> class java.lang.String cookieValues() -> interface java.util.Map copyBrowserCookies() -> void copyHeaderValuesFrom(java.util.Map) -> void copyValuesFrom(java.util.Map) -> void delete(java.lang.String) -> boolean deleteWith(java.lang.String, java.lang.String) -> boolean deleteWithTemplate(java.lang.String) -> boolean disableCompression() -> void disableSSLVerification() -> void enableCompression() -> void enableSSLVerification() -> void equals(java.lang.Object) -> boolean expandPeriodsInNamesToNestedMaps(boolean) -> void expandsPeriodsInNamesToNestedMaps() -> boolean getClass() -> class java.lang.Class getContentType() -> class java.lang.String getFileFrom(java.lang.String) -> class java.lang.String getFrom(java.lang.String) -> boolean getFromNoRedirect(java.lang.String) -> boolean getMapHelper() -> class nl.hsac.fitnesse.fixture.util.MapHelper getThrowExceptionOnHttpRequestFailure() -> boolean globalValue(java.lang.String) -> class java.lang.String hashCode() -> int headFrom(java.lang.String) -> boolean htmlResponse() -> class java.lang.String isExplicitContentTypeSet() -> boolean notify() -> void notifyAll() -> void patchWith(java.lang.String, java.lang.String) -> boolean patchWithTemplate(java.lang.String) -> boolean postFileTo(java.lang.String, java.lang.String) -> boolean postTemplateTo(java.lang.String) -> boolean postTemplateTo(java.lang.String, java.lang.String) -> boolean postTo(java.lang.String, java.lang.String) -> boolean postValuesTo(java.lang.String) -> boolean putFileTo(java.lang.String, java.lang.String) -> boolean putTemplateTo(java.lang.String) -> boolean putTo(java.lang.String, java.lang.String) -> boolean putValuesTo(java.lang.String) -> boolean repeatAtMostTimes() -> int repeatAtMostTimes(int) -> void repeatCount() -> int repeatInterval() -> long repeatUntilHeaderIs(java.lang.String, java.lang.Object) -> boolean repeatUntilResponseIs(java.lang.String) -> boolean repeatUntilResponseIsNot(java.lang.String) -> boolean repeatUntilResponseStatusIs(int) -> boolean request() -> class java.lang.String reset() -> void response() -> class java.lang.String responseHeader(java.lang.String) -> class java.lang.Object responseHeaders() -> interface java.util.Map responseIsValid() -> boolean responseStatus() -> int responseTime() -> long sendTemplateTo(java.lang.String, java.lang.String, java.lang.String) -> boolean set(java.lang.String, java.lang.Object) -> void setBase64EncodedContentOfAsValueFor(java.lang.String, java.lang.String) -> void setBasicAuthorizationHeaderForUserAndPassword(java.lang.String, java.lang.String) -> void setBooleanValueFor(boolean, java.lang.String) -> void setContentOfAsValueFor(java.lang.String, java.lang.String) -> void setContentType(java.lang.String) -> void setDoubleValueFor(double, java.lang.String) -> void setGlobalValueTo(java.lang.String, java.lang.String) -> void setIntValueFor(int, java.lang.String) -> void setMapHelper(nl.hsac.fitnesse.fixture.util.MapHelper) -> void setRepeatIntervalToMilliseconds(int) -> void setStopTestOnException(boolean) -> void setStoreCookies(boolean) -> void setThrowExceptionOnHttpRequestFailure(boolean) -> void setValueFor(java.lang.Object, java.lang.String) -> void setValueForHeader(java.lang.Object, java.lang.String) -> void setValuesFor(java.lang.String, java.lang.String) -> void stopTestOnException() -> boolean template(java.lang.String) -> boolean timeSpentRepeating() -> long toString() -> class java.lang.String value(java.lang.String) -> class java.lang.Object wait() -> void wait(long) -> void wait(long, int) -> void waitMilliseconds(int) -> boolean waitSeconds(int) -> boolean location

Copying from browser's cookie store implicitly ensures cookies are stored/sent.

script http test
note we set version information for cookies (Selenium cannot supply it)
copy browser cookies
__EXCEPTION__:org.openqa.selenium.TimeoutException: timeout: Timed out receiving message from renderer: -0.001 (Session info: chrome=80.0.3987.87) (Driver info: chromedriver=80.0.3987.16 (320f6526c1632ad4f205ebce69b99a062ed78647-refs/branch-heads/3987@{#185}),platform=Windows NT 10.0.10586 x86_64) (WARNING: The server did not provide any stacktrace information) Command duration or timeout: 0 milliseconds Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03' System info: host: 'localhost', ip: '127.0.0.1', os.name: 'Linux', os.arch: 'amd64', os.version: '4.15.0-1055-gcp', java.version: '1.8.0_242' Driver info: org.openqa.selenium.remote.RemoteWebDriver Capabilities {acceptInsecureCerts: false, acceptSslCerts: false, applicationCacheEnabled: false, browserConnectionEnabled: false, browserName: chrome, chrome: {chromedriverVersion: 80.0.3987.16 (320f6526c1632..., userDataDir: C:\Users\ADMINI~1\AppData\L...}, cssSelectorsEnabled: true, databaseEnabled: false, goog:chromeOptions: {debuggerAddress: localhost:49760}, handlesAlerts: true, hasMetadata: true, hasTouchScreen: false, javascriptEnabled: true, locationContextEnabled: true, mobileEmulationEnabled: false, nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(), rotatable: false, setWindowRect: true, strictFileInteractability: false, takesHeapSnapshot: true, takesScreenshot: true, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unexpectedAlertBehaviour: ignore, unhandledPromptBehavior: ignore, version: 80.0.3987.87, webStorageEnabled: true, webdriver.remote.sessionid: 74ed0e4e6eb242638abd370a507...} Session ID: 74ed0e4e6eb242638abd370a507c4669 at sun.reflect.GeneratedConstructorAccessor15.newInstance(Unknown Source) [n/a] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.8.0_242] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [rt.jar:1.8.0_242] at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.http.JsonHttpResponseCodec.reconstructValue(JsonHttpResponseCodec.java:40) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:80) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.http.AbstractHttpResponseCodec.decode(AbstractHttpResponseCodec.java:44) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:609) [selenium-remote-driver-3.141.59.jar] at org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions.getCookies(RemoteWebDriver.java:699) [selenium-remote-driver-3.141.59.jar] at nl.hsac.fitnesse.fixture.util.selenium.SeleniumHelper.getCookies(SeleniumHelper.java:1267) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.Environment.addSeleniumCookies(Environment.java:766) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.HttpTest.copyBrowserCookies(HttpTest.java:762) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_242] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_242] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at nl.hsac.fitnesse.fixture.slim.SlimFixture.invoke(SlimFixture.java:61) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.SlimFixture.aroundSlimInvoke(SlimFixture.java:41) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [n/a] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.callMethod(SimpleInteraction.java:305) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.invokeMethod(SimpleInteraction.java:290) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.findAndInvoke(SimpleInteraction.java:217) [fitnesse-20200308.jar:20200308] at fitnesse.slim.MethodExecutor.findAndInvoke(MethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:139) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.call(StatementExecutor.java:112) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.CallAndOptionalAssignInstruction.executeInternal(CallAndOptionalAssignInstruction.java:30) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.Instruction.execute(Instruction.java:29) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor.execute(ListExecutor.java:85) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:82) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:75) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:62) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.serve(SlimServer.java:47) [fitnesse-20200308.jar:20200308] at fitnesse.testsystems.slim.InProcessSlimClient$1.run(InProcessSlimClient.java:55) [fitnesse-20200308.jar:20200308] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_242]
check cookie value ClientId [null] expected [$clientId->[B1E76A9225834E4CA0BF85EF4CF1C4DC]]
check cookie value OWAPF $requ->[null]
get from
__EXCEPTION__:ABORT_SLIM_TEST:nl.hsac.fitnesse.fixture.slim.StopTestException: Unable to GET response from: null at nl.hsac.fitnesse.fixture.slim.HttpTest.handleCallException(HttpTest.java:562) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.HttpTest.getImpl(HttpTest.java:484) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.HttpTest.getFrom(HttpTest.java:457) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_242] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_242] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at nl.hsac.fitnesse.fixture.slim.SlimFixture.invoke(SlimFixture.java:61) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.SlimFixture.aroundSlimInvoke(SlimFixture.java:41) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [n/a] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.callMethod(SimpleInteraction.java:305) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.invokeMethod(SimpleInteraction.java:290) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.findAndInvoke(SimpleInteraction.java:217) [fitnesse-20200308.jar:20200308] at fitnesse.slim.MethodExecutor.findAndInvoke(MethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:139) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.call(StatementExecutor.java:112) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.CallAndOptionalAssignInstruction.executeInternal(CallAndOptionalAssignInstruction.java:30) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.Instruction.execute(Instruction.java:29) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor.execute(ListExecutor.java:85) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:82) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:75) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:62) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.serve(SlimServer.java:47) [fitnesse-20200308.jar:20200308] at fitnesse.testsystems.slim.InProcessSlimClient$1.run(InProcessSlimClient.java:55) [fitnesse-20200308.jar:20200308] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_242] Caused by: java.lang.NullPointerException: null at java.net.URI$Parser.parse(URI.java:3042) [rt.jar:1.8.0_242] at java.net.URI.<init>(URI.java:588) [rt.jar:1.8.0_242] at java.net.URI.create(URI.java:850) [rt.jar:1.8.0_242] at org.apache.http.client.methods.HttpGet.<init>(HttpGet.java:66) [httpclient-4.5.12.jar:4.5.12] at nl.hsac.fitnesse.fixture.util.HttpClient.get(HttpClient.java:147) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.Environment.doGet(Environment.java:383) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.HttpTest.getImpl(HttpTest.java:482) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.HttpTest.getFrom(HttpTest.java:457) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_242] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_242] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at nl.hsac.fitnesse.fixture.slim.SlimFixture.invoke(SlimFixture.java:61) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at nl.hsac.fitnesse.fixture.slim.SlimFixture.aroundSlimInvoke(SlimFixture.java:41) [file:/home/travis/build/fhoeben/hsac-fitnesse-fixtures/wiki/fixtures/] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) [n/a] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_242] at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_242] at fitnesse.slim.fixtureInteraction.SimpleInteraction.methodInvoke(SimpleInteraction.java:322) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.callMethod(SimpleInteraction.java:305) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.invokeMethod(SimpleInteraction.java:290) [fitnesse-20200308.jar:20200308] at fitnesse.slim.fixtureInteraction.SimpleInteraction.findAndInvoke(SimpleInteraction.java:217) [fitnesse-20200308.jar:20200308] at fitnesse.slim.MethodExecutor.findAndInvoke(MethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.FixtureMethodExecutor.execute(FixtureMethodExecutor.java:18) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.getMethodExecutionResult(StatementExecutor.java:139) [fitnesse-20200308.jar:20200308] at fitnesse.slim.StatementExecutor.call(StatementExecutor.java:112) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.CallAndOptionalAssignInstruction.executeInternal(CallAndOptionalAssignInstruction.java:30) [fitnesse-20200308.jar:20200308] at fitnesse.slim.instructions.Instruction.execute(Instruction.java:29) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatement(ListExecutor.java:49) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor$Executive.executeStatements(ListExecutor.java:43) [fitnesse-20200308.jar:20200308] at fitnesse.slim.ListExecutor.execute(ListExecutor.java:85) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.executeInstructions(SlimServer.java:82) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.processOneSetOfInstructions(SlimServer.java:75) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.tryProcessInstructions(SlimServer.java:62) [fitnesse-20200308.jar:20200308] at fitnesse.slim.SlimServer.serve(SlimServer.java:47) [fitnesse-20200308.jar:20200308] at fitnesse.testsystems.slim.InProcessSlimClient$1.run(InProcessSlimClient.java:55) [fitnesse-20200308.jar:20200308] at java.lang.Thread.run(Thread.java:748) [rt.jar:1.8.0_242]
$loc
check response status 200 Test not run
show Test not run response headers
show Test not run cookie values
note see that we get same cookie value as we copied from browser
check cookie value ClientId $clientId Test not run