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"># => 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"># => 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">'__CAPTURE_SEQ__'</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">'__TEST__'</span>]
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">'__CAPTURE_SEQ__'</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">"#{@ctx.variables['__FILE__']}_#{seq}"</span>
+ <span class="ruby-identifier">file</span> = <span class="ruby-node">"#{test}_#{file}"</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">'_'</span>) <span class="ruby-operator">+</span> <span class="ruby-string">'.png'</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">'__OUTPUT__'</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">'__CAPTURE__'</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">'__TIMEOUT__'</span> =<span class="ruby-operator">></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">"Assertion did not failed as expected:#{action} #{args.join(' ')}"</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">"/John/i"</span> <span class="ruby-string">"${name}"</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"># => 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">'ERROR'</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">'__RAISE_ERROR__'</span> =<span class="ruby-operator">></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">'__RAISE_ERROR__'</span> =<span class="ruby-operator">></span> <span class="ruby-keyword">true</span>, <span class="ruby-string">'__TEST__'</span> =<span class="ruby-operator">></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">'OK'</span>
<span class="ruby-keyword">end</span>
<span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">></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"><<</span> {
- <span class="ruby-value">:name</span> =<span class="ruby-operator">></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">></span> <span class="ruby-identifier">name</span>,
<span class="ruby-value">:status</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">status</span>,
<span class="ruby-value">:time</span> =<span class="ruby-operator">></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">></span> <span class="ruby-identifier">error</span>
}
<span class="ruby-keyword">end</span>