doc/Bauxite/Action.html in bauxite-0.5.0 vs doc/Bauxite/Action.html in bauxite-0.6.0

- old
+ new

@@ -101,10 +101,12 @@ <li ><a href="#method-i-assertv">#assertv</a> <li ><a href="#method-i-break_action">#break_action</a> + <li ><a href="#method-i-capture">#capture</a> + <li ><a href="#method-i-click">#click</a> <li ><a href="#method-i-debug">#debug</a> <li ><a href="#method-i-doif">#doif</a> @@ -514,10 +516,80 @@ </div> + <div id="method-i-capture" class="method-detail "> + + <div class="method-heading"> + <span class="method-name">capture</span><span + class="method-args">(file = nil)</span> + + <span class="method-click-advice">click to toggle source</span> + + </div> + + + <div class="method-description"> + + <p>Captures a screenshot of the current browser window and saves it with +specified <code>file</code> name. If <code>file</code> is omitted a file +name will be generated based on the value of <code>__TEST__</code>, +<code>__FILE__</code> and <code><em>CAPTURE_SEQ</em></code>. If set, the +value of <code>__OUTPUT__</code> will be prefixed to <code>file</code> +(unless <code>file</code> is an absolute path). The last captured file name +will be stored in <code>__CAPTURE__</code>.</p> + +<p>For example:</p> + +<pre class="ruby"><span class="ruby-identifier">capture</span> +<span class="ruby-comment"># =&gt; this would capture the screenshot with a generated file name.</span> + +<span class="ruby-identifier">capture</span> <span class="ruby-identifier">my_file</span>.<span class="ruby-identifier">png</span> +<span class="ruby-comment"># =&gt; this would capture the screenshot to my_file.png in the current</span> +<span class="ruby-comment"># working directory.</span> +</pre> + + + + + <div class="method-source-code" id="capture-source"> + <pre><span class="ruby-comment"># File lib/bauxite/actions/capture.rb, line 42</span> +<span class="ruby-keyword">def</span> <span class="ruby-identifier">capture</span>(<span class="ruby-identifier">file</span> = <span class="ruby-keyword">nil</span>) + <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span> + <span class="ruby-identifier">seq</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__CAPTURE_SEQ__&#39;</span>] <span class="ruby-operator">||</span> <span class="ruby-value">0</span> + <span class="ruby-identifier">test</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__TEST__&#39;</span>] + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__CAPTURE_SEQ__&#39;</span>] = <span class="ruby-identifier">seq</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> + + <span class="ruby-identifier">file</span> = <span class="ruby-node">&quot;#{@ctx.variables[&#39;__FILE__&#39;]}_#{seq}&quot;</span> + <span class="ruby-identifier">file</span> = <span class="ruby-node">&quot;#{test}_#{file}&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">test</span> + <span class="ruby-identifier">file</span> = <span class="ruby-identifier">file</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/[^A-Z0-9_-]/i</span>, <span class="ruby-string">&#39;_&#39;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&#39;.png&#39;</span> + <span class="ruby-keyword">end</span> + + <span class="ruby-keyword">unless</span> <span class="ruby-constant">Pathname</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">file</span>).<span class="ruby-identifier">absolute?</span> + <span class="ruby-identifier">output</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__OUTPUT__&#39;</span>] + <span class="ruby-keyword">if</span> <span class="ruby-identifier">output</span> + <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">mkdir</span> <span class="ruby-identifier">output</span> <span class="ruby-keyword">unless</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">exists?</span> <span class="ruby-identifier">output</span> + <span class="ruby-identifier">file</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">output</span>, <span class="ruby-identifier">file</span>) + <span class="ruby-keyword">end</span> + <span class="ruby-keyword">end</span> + + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">save_screenshot</span>(<span class="ruby-identifier">file</span>) + + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__CAPTURE__&#39;</span>] = <span class="ruby-identifier">file</span> + <span class="ruby-keyword">true</span> +<span class="ruby-keyword">end</span></pre> + </div> + + </div> + + + + + </div> + + <div id="method-i-click" class="method-detail "> <div class="method-heading"> <span class="method-name">click</span><span class="method-args">(selector)</span> @@ -791,14 +863,20 @@ <div class="method-source-code" id="failif-source"> <pre><span class="ruby-comment"># File lib/bauxite/actions/failif.rb, line 40</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">failif</span>(<span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) - <span class="ruby-keyword">if</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">try_exec_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>) + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_timeout</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span> <span class="ruby-keyword">do</span> + <span class="ruby-keyword">begin</span> + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</span>({ <span class="ruby-string">&#39;__TIMEOUT__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>}) <span class="ruby-keyword">do</span> + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-keyword">false</span>) + <span class="ruby-keyword">end</span> + <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span> + <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> + <span class="ruby-keyword">end</span> <span class="ruby-identifier">raise</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span>, <span class="ruby-node">&quot;Assertion did not failed as expected:#{action} #{args.join(&#39; &#39;)}&quot;</span> <span class="ruby-keyword">end</span> - <span class="ruby-keyword">true</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -1339,23 +1417,27 @@ <p>For example:</p> <pre class="ruby"><span class="ruby-identifier">set</span> <span class="ruby-identifier">name</span> <span class="ruby-identifier">john</span> <span class="ruby-identifier">setif</span> <span class="ruby-identifier">is_john</span> <span class="ruby-keyword">true</span> <span class="ruby-identifier">assertv</span> <span class="ruby-string">&quot;/John/i&quot;</span> <span class="ruby-string">&quot;${name}&quot;</span> -<span class="ruby-identifier">assertv</span> <span class="ruby-keyword">true</span> ${<span class="ruby-identifier">is_john</span>]} +<span class="ruby-identifier">assertv</span> <span class="ruby-keyword">true</span> ${<span class="ruby-identifier">is_john</span>} <span class="ruby-comment"># =&gt; the assertion would pass</span> </pre> <div class="method-source-code" id="setif-source"> <pre><span class="ruby-comment"># File lib/bauxite/actions/setif.rb, line 35</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">setif</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>) - <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">try_exec_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>) - <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span> - <span class="ruby-keyword">true</span> + <span class="ruby-keyword">begin</span> + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_parsed_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>, <span class="ruby-keyword">false</span>) + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span> + <span class="ruby-keyword">true</span> + <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">AssertionError</span> + <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> + <span class="ruby-keyword">end</span> <span class="ruby-keyword">end</span></pre> </div> </div> @@ -1535,24 +1617,25 @@ <div class="method-source-code" id="test-source"> <pre><span class="ruby-comment"># File lib/bauxite/actions/test.rb, line 37</span> <span class="ruby-keyword">def</span> <span class="ruby-identifier">test</span>(<span class="ruby-identifier">file</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>) <span class="ruby-identifier">delayed</span> = <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>) - + <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span> <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-keyword">begin</span> <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;ERROR&#39;</span> <span class="ruby-identifier">error</span> = <span class="ruby-keyword">nil</span> - <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</span>({ <span class="ruby-string">&#39;__RAISE_ERROR__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span> + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</span>({ <span class="ruby-string">&#39;__RAISE_ERROR__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>, <span class="ruby-string">&#39;__TEST__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> }) <span class="ruby-keyword">do</span> <span class="ruby-identifier">delayed</span>.<span class="ruby-identifier">call</span> <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;OK&#39;</span> <span class="ruby-keyword">end</span> <span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span> + <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>) <span class="ruby-identifier">error</span> = <span class="ruby-identifier">e</span> <span class="ruby-keyword">ensure</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">tests</span> <span class="ruby-operator">&lt;&lt;</span> { - <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span>, + <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:status</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">status</span>, <span class="ruby-value">:time</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">t</span>, <span class="ruby-value">:error</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error</span> } <span class="ruby-keyword">end</span>