All Downloads are FREE. Search and download functionalities are using the official Maven repository.

FitNesseRoot.files.testResults.RestFixtureTests.JavascriptExpectations.20160517141612_0_0_0_1.xml Maven / Gradle / Ivy

There is a newer version: 4.4
Show newest version
<?xml version="1.0"?>
<testResults>
  <FitNesseVersion>v20151230</FitNesseVersion>
  <rootPath>RestFixtureTests.JavascriptExpectations</rootPath>
    <result>
    <counts>
      <right>2</right>
      <wrong>0</wrong>
      <ignores>0</ignores>
      <exceptions>14</exceptions>
    </counts>
    <date>2016-05-17T14:16:12+01:00</date>
    <runTimeInMillis>48</runTimeInMillis>
    <content>&lt;div class="collapsible closed"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='#' class='expandall'&gt;Expand&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#' class='collapseall'&gt;Collapse&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
	&lt;p class="title"&gt;Included page: &lt;a href="RestFixtureTests.SetUp"&gt;.RestFixtureTests.SetUp&lt;/a&gt; &lt;a href="RestFixtureTests.SetUp?edit&amp;amp;redirectToReferer=true&amp;amp;redirectAction=" class="edit"&gt;(edit)&lt;/a&gt;&lt;/p&gt;
	&lt;div&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;script&lt;/td&gt;
		&lt;td colspan="2"&gt;&lt;span class="pass"&gt;smartrics.rest.test.fitnesse.fixture.HttpServerFixture&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;check&lt;/td&gt;
		&lt;td&gt;is started&lt;/td&gt;
		&lt;td&gt;&lt;span class="pass"&gt;true&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor9"&gt;
		&lt;td colspan="3"&gt;&lt;span class="pass"&gt;reset resources database&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;&lt;h3&gt;Expectations in Javascript on responses with content type application/json&lt;/h3&gt;
&lt;br/&gt;As of &lt;a href="RestFixture"&gt;.RestFixture&lt;/a&gt;. Version 2, a javascript engine is embedded to allow expectations in Javascript on response body contents in JSON format.&lt;br/&gt;&lt;br/&gt;&lt;div class="collapsible"&gt;&lt;ul&gt;&lt;li&gt;&lt;a href='#' class='expandall'&gt;Expand&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href='#' class='collapseall'&gt;Collapse&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
	&lt;p class="title"&gt;XPaths and JSON&lt;/p&gt;
	&lt;div&gt;For backward compatibility XPath expressions are maintained and executed&lt;br/&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br/&gt;After a successful response is received with content type "application/json" the expectation cell in a &lt;a href="RestFixture"&gt;.RestFixture&lt;/a&gt; row is&lt;br/&gt;interpreted as a string with Javascript and executed within the context of the response body.&lt;br/&gt;&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td colspan="4"&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;setBody&lt;/td&gt;
		&lt;td colspan="4"&gt; { "resource" : { "name" : "test post", "data" : "some data" } } &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor1"&gt;
		&lt;td&gt;POST&lt;/td&gt;
		&lt;td&gt;/resources/&lt;/td&gt;
		&lt;td&gt;201&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;no-body&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;let&lt;/td&gt;
		&lt;td&gt;id&lt;/td&gt;
		&lt;td&gt;header&lt;/td&gt;
		&lt;td&gt;Location:/resources/(.+)&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;A variable &amp;lt;code&amp;gt;jsonbody&amp;lt;/code&amp;gt; is defined holding the JSON in the response.&lt;br/&gt;&lt;br/&gt;The test passes if the result of the evaluation of the cell is a boolean.&lt;br/&gt;&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td colspan="4"&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;GET&lt;/td&gt;
		&lt;td&gt;/resources/%id%.json&lt;/td&gt;
		&lt;td&gt;200&lt;/td&gt;
		&lt;td&gt;Content-Type : application/json&lt;/td&gt;
		&lt;td&gt;
jsonbody.resource.name=="test post" &amp;&amp; jsonbody.resource.data=="some data"
&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;It is possible to specify multiple assertions, one for each line.&lt;br/&gt;The test passes if each line evaluates to true.&lt;br/&gt;&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td colspan="4"&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;GET&lt;/td&gt;
		&lt;td&gt;/resources/%id%.json&lt;/td&gt;
		&lt;td&gt;200&lt;/td&gt;
		&lt;td&gt;Content-Type : application/json&lt;/td&gt;
		&lt;td&gt;
jsonbody.resource.name.length &gt;= 0
jsonbody.resource.name.length &lt; 1000
jsonbody.resource.name.length &lt; jsonbody.resource.name.length+1
&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor1"&gt;
		&lt;td&gt;let&lt;/td&gt;
		&lt;td&gt;content&lt;/td&gt;
		&lt;td&gt;js&lt;/td&gt;
		&lt;td&gt;response.body&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td colspan="4"&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;setBody&lt;/td&gt;
		&lt;td colspan="4"&gt;%content%&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor1"&gt;
		&lt;td&gt;POST&lt;/td&gt;
		&lt;td&gt;/resources/&lt;/td&gt;
		&lt;td&gt;201&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
		&lt;td&gt;no-body&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;let&lt;/td&gt;
		&lt;td&gt;id&lt;/td&gt;
		&lt;td&gt;header&lt;/td&gt;
		&lt;td&gt;Location:/resources/(.+)&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;In some cases may be useful to force evaluation of the expectation cell as a javascript block.&lt;br/&gt;By embedding the &amp;lt;code&amp;gt;/* javascript */&amp;lt;/code&amp;gt; comment, the whole expectation cell will be parsed and evaluated entirely using the javascript interpreter.&lt;br/&gt;&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td colspan="4"&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;GET&lt;/td&gt;
		&lt;td&gt;/resources/%id%.json&lt;/td&gt;
		&lt;td&gt;200&lt;/td&gt;
		&lt;td&gt;Content-Type : application/json&lt;/td&gt;
		&lt;td&gt;&lt;pre&gt;
/* javascript */
var concat = jsonbody.resource.name + " and " + jsonbody.resource.data
concat=="test post and some data"
&lt;/pre&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor1"&gt;
		&lt;td&gt;let&lt;/td&gt;
		&lt;td&gt;content&lt;/td&gt;
		&lt;td&gt;js&lt;/td&gt;
		&lt;td&gt;response.body&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;It is possible to inject external javascript scripts by setting the "restfixture.javascript.imports.map" property to a map value (script name=script path).&lt;br/&gt;The path to the script can be to a file in the filesystem or to an racheable URL&lt;br/&gt;&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture Config &lt;span class="error"&gt;Could not invoke constructor for RestFixtureConfig[1]&lt;/span&gt;&lt;/td&gt;
		&lt;td&gt;imp&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;restfixture.javascript.imports.map&lt;/td&gt;
		&lt;td&gt;
sampleJs=src/main/resources/FitNesseRoot/files/javascript/sample.js
jsonpath=src/main/resources/FitNesseRoot/files/javascript/jsonpath-0.8.0.js&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
&lt;br/&gt;&lt;table&gt;
	&lt;tr class="slimRowTitle"&gt;
		&lt;td&gt;Table: Rest Fixture &lt;span class="error"&gt;Could not invoke constructor for RestFixture[2]&lt;/span&gt;&lt;/td&gt;
		&lt;td&gt;&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;&lt;/td&gt;
		&lt;td colspan="3"&gt;imp&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor0"&gt;
		&lt;td&gt;GET&lt;/td&gt;
		&lt;td&gt;/resources/%id%.json&lt;/td&gt;
		&lt;td&gt;200&lt;/td&gt;
		&lt;td&gt;Content-Type : application/json&lt;/td&gt;
		&lt;td&gt;JSONPath.eval(jsonbody, "$..resource.name") == "test post"&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class="slimRowColor1"&gt;
		&lt;td&gt;let&lt;/td&gt;
		&lt;td&gt;sum&lt;/td&gt;
		&lt;td&gt;js&lt;/td&gt;
		&lt;td&gt;var sum = sampleAdd(1, 2); sum;&lt;/td&gt;
		&lt;td&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;
</content>
    <relativePageName>JavascriptExpectations</relativePageName>
            <instructions>
            <instructionResult>
        <instruction>{id='scriptTable_0_0', instruction='make', instanceName='scriptTableActor', className='smartrics.rest.test.fitnesse.fixture.HttpServerFixture', args=[]}</instruction>
        <slimResult>pass(smartrics.rest.test.fitnesse.fixture.HttpServerFixture)</slimResult>
                <expectation>
                    <status>pass</status>
                    <instructionId>scriptTable_0_0</instructionId>
                    <col>1</col>
                              <row>0</row>
                    <type>ConstructionExpectation</type>
                                        <evaluationMessage>smartrics.rest.test.fitnesse.fixture.HttpServerFixture</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='scriptTable_0_1', instruction='call', instanceName='scriptTableActor', methodName='isStarted', args=[]}</instruction>
        <slimResult>pass(true)</slimResult>
                <expectation>
                    <status>pass</status>
                    <instructionId>scriptTable_0_1</instructionId>
                    <col>2</col>
                              <row>1</row>
                    <type>ReturnedValueExpectation</type>
                                        <evaluationMessage>true</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='scriptTable_0_2', instruction='call', instanceName='scriptTableActor', methodName='resetResourcesDatabase', args=[]}</instruction>
        <slimResult>pass()</slimResult>
                <expectation>
                    <status>pass</status>
                    <instructionId>scriptTable_0_2</instructionId>
                    <col>0</col>
                              <row>2</row>
                    <type>ScriptActionExpectation</type>
                                      </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_1_0', instruction='make', instanceName='tableTable_1', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_1_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_1_1', instruction='call', instanceName='tableTable_1', methodName='doTable', args=[[[setBody,  { "resource" : { "name" : "test post", "data" : "some data" } } ], [POST, /resources/, 201, , no-body], [let, id, header, Location:/resources/(.+), ]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_1_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_1.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_2_0', instruction='make', instanceName='tableTable_2', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_2_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_2_1', instruction='call', instanceName='tableTable_2', methodName='doTable', args=[[[GET, /resources/%id%.json, 200, Content-Type : application/json, 
jsonbody.resource.name=="test post" &amp;&amp; jsonbody.resource.data=="some data"
]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_2_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_2.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_3_0', instruction='make', instanceName='tableTable_3', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_3_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_3_1', instruction='call', instanceName='tableTable_3', methodName='doTable', args=[[[GET, /resources/%id%.json, 200, Content-Type : application/json, 
jsonbody.resource.name.length &gt;= 0
jsonbody.resource.name.length &lt; 1000
jsonbody.resource.name.length &lt; jsonbody.resource.name.length+1
], [let, content, js, response.body, ]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_3_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_3.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_4_0', instruction='make', instanceName='tableTable_4', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_4_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_4_1', instruction='call', instanceName='tableTable_4', methodName='doTable', args=[[[setBody, %content%], [POST, /resources/, 201, , no-body], [let, id, header, Location:/resources/(.+), ]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_4_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_4.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_5_0', instruction='make', instanceName='tableTable_5', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_5_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_5_1', instruction='call', instanceName='tableTable_5', methodName='doTable', args=[[[GET, /resources/%id%.json, 200, Content-Type : application/json, &lt;pre&gt;
/* javascript */
var concat = jsonbody.resource.name + " and " + jsonbody.resource.data
concat=="test post and some data"
&lt;/pre&gt;], [let, content, js, response.body, ]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_5_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_5.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_6_0', instruction='make', instanceName='tableTable_6', className='RestFixtureConfig', args=[imp]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_6_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixtureConfig[1]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_6_1', instruction='call', instanceName='tableTable_6', methodName='doTable', args=[[[restfixture.javascript.imports.map, 
sampleJs=src/main/resources/FitNesseRoot/files/javascript/sample.js
jsonpath=src/main/resources/FitNesseRoot/files/javascript/jsonpath-0.8.0.js]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_6_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_6.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_7_0', instruction='make', instanceName='tableTable_7', className='RestFixture', args=[&lt;a href="http://localhost:9876"&gt;http://localhost:9876&lt;/a&gt;, imp]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_7_0</instructionId>
                              <type>ConstructionExpectation</type>
                                        <evaluationMessage>Could not invoke constructor for RestFixture[2]</evaluationMessage>
                  </expectation>
              </instructionResult>
            <instructionResult>
        <instruction>{id='tableTable_7_1', instruction='call', instanceName='tableTable_7', methodName='doTable', args=[[[GET, /resources/%id%.json, 200, Content-Type : application/json, JSONPath.eval(jsonbody, "$..resource.name") == "test post"], [let, sum, js, var sum = sampleAdd(1, 2); sum;, ]]]}</instruction>
        <slimResult></slimResult>
                <expectation>
                    <status>error</status>
                    <instructionId>tableTable_7_1</instructionId>
                              <type>TableTableExpectation</type>
                                        <evaluationMessage>The instance tableTable_7.doTable. does not exist</evaluationMessage>
                  </expectation>
              </instructionResult>
          </instructions>
      </result>
  <finalCounts>
    <right>0</right>
    <wrong>0</wrong>
    <ignores>0</ignores>
    <exceptions>1</exceptions>
  </finalCounts>
  <totalRunTimeInMillis>48</totalRunTimeInMillis>
</testResults>





© 2015 - 2025 Weber Informatics LLC | Privacy Policy