bauxite 0.6.18 → 0.6.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (205) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +21 -21
  3. data/README.md +293 -293
  4. data/Rakefile +128 -128
  5. data/bin/bauxite +27 -27
  6. data/doc/Bauxite.html +6 -9
  7. data/doc/Bauxite/Action.html +298 -315
  8. data/doc/Bauxite/ActionModule.html +23 -26
  9. data/doc/Bauxite/Application.html +36 -38
  10. data/doc/Bauxite/Context.html +303 -303
  11. data/doc/Bauxite/Errors.html +6 -9
  12. data/doc/Bauxite/Errors/AssertionError.html +6 -9
  13. data/doc/Bauxite/Errors/FileNotFoundError.html +6 -9
  14. data/doc/Bauxite/Errors/FormatError.html +6 -9
  15. data/doc/Bauxite/Loggers.html +6 -9
  16. data/doc/Bauxite/Loggers/CompositeLogger.html +29 -32
  17. data/doc/Bauxite/Loggers/EchoLogger.html +10 -13
  18. data/doc/Bauxite/Loggers/FileLogger.html +25 -28
  19. data/doc/Bauxite/Loggers/HtmlLogger.html +99 -102
  20. data/doc/Bauxite/Loggers/NullLogger.html +16 -19
  21. data/doc/Bauxite/Loggers/ReportLogger.html +43 -46
  22. data/doc/Bauxite/Loggers/TerminalLogger.html +76 -79
  23. data/doc/Bauxite/Loggers/XtermLogger.html +28 -31
  24. data/doc/Bauxite/Parser.html +87 -89
  25. data/doc/Bauxite/ParserModule.html +19 -22
  26. data/doc/Bauxite/Selector.html +99 -105
  27. data/doc/Bauxite/SelectorModule.html +27 -30
  28. data/doc/README_md.html +117 -103
  29. data/doc/created.rid +58 -58
  30. data/doc/fonts.css +167 -167
  31. data/doc/fonts/Lato-Light.ttf +0 -0
  32. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  33. data/doc/fonts/Lato-Regular.ttf +0 -0
  34. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  35. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  36. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  37. data/doc/images/add.png +0 -0
  38. data/doc/images/arrow_up.png +0 -0
  39. data/doc/images/brick.png +0 -0
  40. data/doc/images/brick_link.png +0 -0
  41. data/doc/images/bug.png +0 -0
  42. data/doc/images/bullet_black.png +0 -0
  43. data/doc/images/bullet_toggle_minus.png +0 -0
  44. data/doc/images/bullet_toggle_plus.png +0 -0
  45. data/doc/images/date.png +0 -0
  46. data/doc/images/delete.png +0 -0
  47. data/doc/images/find.png +0 -0
  48. data/doc/images/loadingAnimation.gif +0 -0
  49. data/doc/images/macFFBgHack.png +0 -0
  50. data/doc/images/package.png +0 -0
  51. data/doc/images/page_green.png +0 -0
  52. data/doc/images/page_white_text.png +0 -0
  53. data/doc/images/page_white_width.png +0 -0
  54. data/doc/images/plugin.png +0 -0
  55. data/doc/images/ruby.png +0 -0
  56. data/doc/images/tag_blue.png +0 -0
  57. data/doc/images/tag_green.png +0 -0
  58. data/doc/images/transparent.png +0 -0
  59. data/doc/images/wrench.png +0 -0
  60. data/doc/images/wrench_orange.png +0 -0
  61. data/doc/images/zoom.png +0 -0
  62. data/doc/index.html +117 -103
  63. data/doc/js/darkfish.js +32 -11
  64. data/doc/js/jquery.js +0 -0
  65. data/doc/js/navigation.js +0 -0
  66. data/doc/js/search.js +0 -0
  67. data/doc/js/search_index.js +1 -1
  68. data/doc/js/searcher.js +0 -0
  69. data/doc/rdoc.css +580 -580
  70. data/doc/table_of_contents.html +69 -72
  71. data/lib/bauxite.rb +28 -28
  72. data/lib/bauxite/actions/alias.rb +51 -51
  73. data/lib/bauxite/actions/assert.rb +49 -49
  74. data/lib/bauxite/actions/asserth.rb +60 -60
  75. data/lib/bauxite/actions/assertm.rb +49 -49
  76. data/lib/bauxite/actions/assertv.rb +40 -40
  77. data/lib/bauxite/actions/assertw.rb +47 -47
  78. data/lib/bauxite/actions/break.rb +39 -39
  79. data/lib/bauxite/actions/capture.rb +61 -61
  80. data/lib/bauxite/actions/click.rb +36 -36
  81. data/lib/bauxite/actions/debug.rb +103 -103
  82. data/lib/bauxite/actions/doif.rb +43 -43
  83. data/lib/bauxite/actions/dounless.rb +43 -43
  84. data/lib/bauxite/actions/echo.rb +36 -36
  85. data/lib/bauxite/actions/exec.rb +46 -46
  86. data/lib/bauxite/actions/exit.rb +35 -35
  87. data/lib/bauxite/actions/failif.rb +52 -52
  88. data/lib/bauxite/actions/js.rb +41 -41
  89. data/lib/bauxite/actions/load.rb +49 -49
  90. data/lib/bauxite/actions/open.rb +35 -35
  91. data/lib/bauxite/actions/params.rb +40 -40
  92. data/lib/bauxite/actions/replace.rb +37 -37
  93. data/lib/bauxite/actions/reset.rb +38 -38
  94. data/lib/bauxite/actions/return.rb +68 -68
  95. data/lib/bauxite/actions/ruby.rb +58 -58
  96. data/lib/bauxite/actions/select.rb +48 -48
  97. data/lib/bauxite/actions/set.rb +39 -39
  98. data/lib/bauxite/actions/setif.rb +44 -44
  99. data/lib/bauxite/actions/source.rb +44 -44
  100. data/lib/bauxite/actions/store.rb +38 -38
  101. data/lib/bauxite/actions/submit.rb +37 -37
  102. data/lib/bauxite/actions/test.rb +67 -67
  103. data/lib/bauxite/actions/tryload.rb +71 -71
  104. data/lib/bauxite/actions/wait.rb +38 -38
  105. data/lib/bauxite/actions/write.rb +44 -44
  106. data/lib/bauxite/application.rb +349 -349
  107. data/lib/bauxite/core/action.rb +199 -199
  108. data/lib/bauxite/core/context.rb +791 -791
  109. data/lib/bauxite/core/errors.rb +41 -41
  110. data/lib/bauxite/core/logger.rb +169 -169
  111. data/lib/bauxite/core/parser.rb +85 -85
  112. data/lib/bauxite/core/selector.rb +152 -152
  113. data/lib/bauxite/loggers/composite.rb +91 -91
  114. data/lib/bauxite/loggers/echo.rb +36 -36
  115. data/lib/bauxite/loggers/file.rb +68 -68
  116. data/lib/bauxite/loggers/html.rb +154 -154
  117. data/lib/bauxite/loggers/terminal.rb +134 -134
  118. data/lib/bauxite/loggers/xterm.rb +101 -101
  119. data/lib/bauxite/parsers/csv.rb +43 -43
  120. data/lib/bauxite/parsers/default.rb +42 -42
  121. data/lib/bauxite/parsers/html.rb +79 -79
  122. data/lib/bauxite/selectors/attr.rb +39 -39
  123. data/lib/bauxite/selectors/frame.rb +60 -60
  124. data/lib/bauxite/selectors/json.rb +88 -88
  125. data/lib/bauxite/selectors/sid.rb +38 -38
  126. data/lib/bauxite/selectors/smart.rb +80 -80
  127. data/lib/bauxite/selectors/window.rb +77 -77
  128. data/test/alert.bxt +3 -3
  129. data/test/alert/page.html +4 -4
  130. data/test/alias.bxt +9 -9
  131. data/test/asserth.bxt +2 -2
  132. data/test/assertv.bxt +1 -1
  133. data/test/assertw.bxt +7 -7
  134. data/test/broken.bxt.manual +0 -0
  135. data/test/bug_load_path.bxt.manual +0 -0
  136. data/test/bug_load_path/broken.bxt.manual +0 -0
  137. data/test/bug_load_path/test.bxt +0 -0
  138. data/test/capture.bxt.manual +20 -20
  139. data/test/capture/my_test.bxt +1 -1
  140. data/test/capture/page.html +6 -6
  141. data/test/capture_on_error.bxt.manual +3 -3
  142. data/test/capture_on_error/my_test.bxt +1 -1
  143. data/test/capture_on_error/page.html +2 -2
  144. data/test/debug.bxt.manual +0 -0
  145. data/test/default_selector.bxt.manual +7 -7
  146. data/test/default_selector/page.html +10 -10
  147. data/test/default_selector_var.bxt +1 -1
  148. data/test/delay.bxt +2 -2
  149. data/test/delay/page.html +4 -4
  150. data/test/doif.bxt +6 -6
  151. data/test/dounless.bxt +6 -6
  152. data/test/exec.bxt +6 -6
  153. data/test/exit.bxt +3 -3
  154. data/test/exit/test.bxt +3 -3
  155. data/test/extension.bxt.manual +4 -4
  156. data/test/extension/custom.rb +12 -12
  157. data/test/extension/page.html +4 -4
  158. data/test/failif.bxt +7 -7
  159. data/test/failif/page.html +5 -5
  160. data/test/format.bxt +17 -17
  161. data/test/format/page.html +6 -6
  162. data/test/frame.bxt +6 -6
  163. data/test/frame/child_frame.html +6 -6
  164. data/test/frame/grandchild_frame.html +4 -4
  165. data/test/frame/page.html +4 -4
  166. data/test/js.bxt +4 -4
  167. data/test/json.bxt +19 -19
  168. data/test/json/array.json +3 -3
  169. data/test/json/object.json +13 -13
  170. data/test/load.bxt +18 -18
  171. data/test/load/child.bxt +12 -12
  172. data/test/parsers.bxt +1 -1
  173. data/test/parsers.csv +7 -7
  174. data/test/parsers.html +32 -32
  175. data/test/parsers/page.html +6 -6
  176. data/test/return.bxt +1 -1
  177. data/test/return/f1.bxt +1 -1
  178. data/test/return/f2.bxt +1 -1
  179. data/test/return/f3.bxt +1 -1
  180. data/test/return/f4.bxt +2 -2
  181. data/test/ruby.bxt +1 -1
  182. data/test/ruby/custom.rb +5 -5
  183. data/test/select.bxt +9 -9
  184. data/test/select/page.html +8 -8
  185. data/test/selectors.bxt +7 -7
  186. data/test/selectors/page.html +6 -6
  187. data/test/set_builtin.bxt +5 -0
  188. data/test/set_builtin/page.html +5 -0
  189. data/test/setif.bxt +3 -3
  190. data/test/smart_selector.bxt +17 -17
  191. data/test/smart_selector/page.html +17 -17
  192. data/test/stdin.bxt +0 -0
  193. data/test/submit.bxt +4 -4
  194. data/test/submit/page.html +6 -6
  195. data/test/submit/page2.html +4 -4
  196. data/test/test.bxt.manual +6 -6
  197. data/test/test/test1.bxt +2 -2
  198. data/test/test/test2.bxt +3 -3
  199. data/test/test/test3.bxt +2 -2
  200. data/test/test/test4.bxt +1 -1
  201. data/test/test/test5.bxt +1 -1
  202. data/test/window.bxt +14 -14
  203. data/test/window/page.html +5 -5
  204. data/test/window/popup.html +4 -4
  205. metadata +5 -3
data/Rakefile CHANGED
@@ -1,129 +1,129 @@
1
- task :default => [:test, :doc]
2
-
3
- CURRENT_VERSION = `ruby -Ilib bin/bauxite --version`.gsub(/^.* /, '')
4
-
5
- # === Gem Package =========================================================== #
6
- require 'rubygems'
7
- require 'rubygems/package_task'
8
-
9
- spec = Gem::Specification.new do |s|
10
- s.name = 'bauxite'
11
- s.summary = 'Bauxite is a façade over Selenium intended for non-developers'
12
- s.description = 'Bauxite is a façade over Selenium intended for non-developers. The idea behind this project was to create a tool that allows non-developers to write web tests in a human-readable language. Another major requirement is to be able to easily extend the test language to create functional abstractions over technical details.'
13
- s.author = 'Patricio Zavolinsky'
14
- s.email = 'pzavolinsky at yahoo dot com dot ar'
15
- s.homepage = 'https://github.com/pzavolinsky/bauxite'
16
- s.license = 'MIT'
17
- s.version = CURRENT_VERSION
18
- s.executables = ["bauxite"]
19
- s.add_runtime_dependency 'selenium-webdriver', '~> 2.47'
20
- s.add_development_dependency 'rake' , '~> 10.1'
21
- s.files = FileList[
22
- 'LICENSE',
23
- 'README.md',
24
- 'Rakefile',
25
- 'bin/*',
26
- 'lib/**/*.rb',
27
- 'test/**/*',
28
- 'doc/**/*'
29
- ]
30
- end
31
-
32
- task :package => [ :test, :doc ]
33
- task :gem => [ :test, :doc ]
34
-
35
- Gem::PackageTask.new(spec) do |pkg|
36
- pkg.need_zip = true
37
- pkg.need_tar = true
38
- end
39
-
40
- # === Integration tests ===================================================== #
41
- desc "Run integration tests"
42
- task :test do
43
- test_files = Dir[File.join('test', '*.bxt')].select { |f| not File.directory? f }.join(' ')
44
- ruby "-Ilib bin/bauxite -v #{test_files}"
45
-
46
- ruby "-Ilib bin/bauxite -v -e test/extension #{File.join('test', 'extension.bxt.manual')}"
47
-
48
- ruby "-Ilib bin/bauxite -v -s css test/default_selector.bxt.manual"
49
-
50
- system("ruby -Ilib bin/bauxite test/test.bxt.manual")
51
- fail "The 'test' action test failed to return the expected exit status: the exit status was #{$?.exitstatus}" unless $?.exitstatus == 2
52
-
53
- debug = `echo exit | ruby -Ilib bin/bauxite -l echo test/debug.bxt.manual -d`
54
- puts debug
55
- unless debug.include? 'debug> '
56
- fail "The -d argument failed to open the debug console"
57
- end
58
-
59
- check = lambda { |f| fail "Captured file not found #{f}" unless File.exists? f }
60
-
61
- system('rm -rf /tmp/bauxite-test')
62
- ruby "-Ilib bin/bauxite --output /tmp/bauxite-test test/capture.bxt.manual"
63
- check.call '/tmp/bauxite-test/test_capture_bxt_manual_0.png'
64
- check.call '/tmp/bauxite-test/test_capture_bxt_manual_1.png'
65
- check.call '/tmp/bauxite-test/test_capture_bxt_manual_2.png'
66
- check.call '/tmp/bauxite-test/with_name.png'
67
- check.call '/tmp/bauxite-test/capture_my_test_bxt_test_capture_my_test_bxt_3.png'
68
- check.call '/tmp/bauxite-test/named_test_test_capture_my_test_bxt_3.png'
69
-
70
- system('rm -rf /tmp/bauxite-test')
71
- system("ruby -Ilib bin/bauxite --output /tmp/bauxite-test -c test/capture_on_error.bxt.manual")
72
- fail "The 'capture_on_error' test failed to return the expected exit status: the exit status was #{$?.exitstatus}" unless $?.exitstatus == 1
73
- check.call '/tmp/bauxite-test/capture_on_error_my_test_bxt_test_capture_on_error_bxt_manual_0.png'
74
- check.call '/tmp/bauxite-test/test_capture_on_error_bxt_manual_0.png'
75
-
76
- system("( cd test; ruby -I../lib ../bin/bauxite bug_load_path.bxt.manual -v; )")
77
- fail "The regression test for 'bug_load_path' failed" unless $?.exitstatus == 0
78
-
79
- end
80
-
81
- # === Documentation ========================================================= #
82
- desc "Generate Bauxite documentation"
83
- task :doc do
84
- doc = `rdoc -O -U -V --main README.md README.md #{File.join('lib', 'bauxite')}`
85
- puts doc
86
- fail "Documentation failed" unless $?.exitstatus == 0
87
- fail "Undocumented artifacts found" unless doc.include? '100.00% documented'
88
- end
89
-
90
- desc "Open documentation in a browser"
91
- task :viewdoc => [:doc] do
92
- `xdg-open #{File.join('doc', 'index.html')}`
93
- end
94
-
95
- # === Helpers =============================================================== #
96
- desc "Helper: Inject license into every file in lib"
97
- task :inject_license do
98
- license = File.open('LICENSE', 'r') { |f| f.read }
99
- license = license.each_line.to_a[2..-1].map { |l| "# #{l}".sub(/ *$/, '') }
100
- license = "#--\n#{license.join('')}#++\n\n"
101
-
102
- Dir['lib/**/*'].select { |f| not File.directory? f }.each do |f|
103
- puts f
104
- content = license + File.open(f, 'r') { |f| f.read }
105
- #File.open(f, 'w') { |f| f.write content }
106
- end
107
- end
108
-
109
- desc "Helper: Update Bauxite version"
110
- task :update_version, :version do |t,args|
111
- version = args[:version]
112
- unless version
113
- puts "Usage rake update_version[version]"
114
- puts ""
115
- puts "Current version: #{CURRENT_VERSION}"
116
- exit false
117
- end
118
-
119
- content = File.open('lib/bauxite.rb', 'r') { |f| f.read }
120
- expr = /(.*VERSION = ")([^"]*)(".*)/
121
-
122
- content = content.each_line.map do |line|
123
- line.sub(/(.*VERSION = ").*(".*)/, "\\1#{version}\\2")
124
- end.join
125
- if version
126
- puts "Updated version to #{version}"
127
- File.open('lib/bauxite.rb', 'w') { |f| f.write content }
128
- end
1
+ task :default => [:test, :doc]
2
+
3
+ CURRENT_VERSION = `ruby -Ilib bin/bauxite --version`.gsub(/^.* /, '')
4
+
5
+ # === Gem Package =========================================================== #
6
+ require 'rubygems'
7
+ require 'rubygems/package_task'
8
+
9
+ spec = Gem::Specification.new do |s|
10
+ s.name = 'bauxite'
11
+ s.summary = 'Bauxite is a façade over Selenium intended for non-developers'
12
+ s.description = 'Bauxite is a façade over Selenium intended for non-developers. The idea behind this project was to create a tool that allows non-developers to write web tests in a human-readable language. Another major requirement is to be able to easily extend the test language to create functional abstractions over technical details.'
13
+ s.author = 'Patricio Zavolinsky'
14
+ s.email = 'pzavolinsky at yahoo dot com dot ar'
15
+ s.homepage = 'https://github.com/pzavolinsky/bauxite'
16
+ s.license = 'MIT'
17
+ s.version = CURRENT_VERSION
18
+ s.executables = ["bauxite"]
19
+ s.add_runtime_dependency 'selenium-webdriver', '~> 2.47'
20
+ s.add_development_dependency 'rake' , '~> 10.1'
21
+ s.files = FileList[
22
+ 'LICENSE',
23
+ 'README.md',
24
+ 'Rakefile',
25
+ 'bin/*',
26
+ 'lib/**/*.rb',
27
+ 'test/**/*',
28
+ 'doc/**/*'
29
+ ]
30
+ end
31
+
32
+ task :package => [ :test, :doc ]
33
+ task :gem => [ :test, :doc ]
34
+
35
+ Gem::PackageTask.new(spec) do |pkg|
36
+ pkg.need_zip = true
37
+ pkg.need_tar = true
38
+ end
39
+
40
+ # === Integration tests ===================================================== #
41
+ desc "Run integration tests"
42
+ task :test do
43
+ test_files = Dir[File.join('test', '*.bxt')].select { |f| not File.directory? f }.join(' ')
44
+ ruby "-Ilib bin/bauxite -v #{test_files}"
45
+
46
+ ruby "-Ilib bin/bauxite -v -e test/extension #{File.join('test', 'extension.bxt.manual')}"
47
+
48
+ ruby "-Ilib bin/bauxite -v -s css test/default_selector.bxt.manual"
49
+
50
+ system("ruby -Ilib bin/bauxite test/test.bxt.manual")
51
+ fail "The 'test' action test failed to return the expected exit status: the exit status was #{$?.exitstatus}" unless $?.exitstatus == 2
52
+
53
+ debug = `echo exit | ruby -Ilib bin/bauxite -l echo test/debug.bxt.manual -d`
54
+ puts debug
55
+ unless debug.include? 'debug> '
56
+ fail "The -d argument failed to open the debug console"
57
+ end
58
+
59
+ check = lambda { |f| fail "Captured file not found #{f}" unless File.exists? f }
60
+
61
+ system('rm -rf /tmp/bauxite-test')
62
+ ruby "-Ilib bin/bauxite --output /tmp/bauxite-test test/capture.bxt.manual"
63
+ check.call '/tmp/bauxite-test/test_capture_bxt_manual_0.png'
64
+ check.call '/tmp/bauxite-test/test_capture_bxt_manual_1.png'
65
+ check.call '/tmp/bauxite-test/test_capture_bxt_manual_2.png'
66
+ check.call '/tmp/bauxite-test/with_name.png'
67
+ check.call '/tmp/bauxite-test/capture_my_test_bxt_test_capture_my_test_bxt_3.png'
68
+ check.call '/tmp/bauxite-test/named_test_test_capture_my_test_bxt_3.png'
69
+
70
+ system('rm -rf /tmp/bauxite-test')
71
+ system("ruby -Ilib bin/bauxite --output /tmp/bauxite-test -c test/capture_on_error.bxt.manual")
72
+ fail "The 'capture_on_error' test failed to return the expected exit status: the exit status was #{$?.exitstatus}" unless $?.exitstatus == 1
73
+ check.call '/tmp/bauxite-test/capture_on_error_my_test_bxt_test_capture_on_error_bxt_manual_0.png'
74
+ check.call '/tmp/bauxite-test/test_capture_on_error_bxt_manual_0.png'
75
+
76
+ system("( cd test; ruby -I../lib ../bin/bauxite bug_load_path.bxt.manual -v; )")
77
+ fail "The regression test for 'bug_load_path' failed" unless $?.exitstatus == 0
78
+
79
+ end
80
+
81
+ # === Documentation ========================================================= #
82
+ desc "Generate Bauxite documentation"
83
+ task :doc do
84
+ doc = `rdoc -O -U -V --main README.md README.md #{File.join('lib', 'bauxite')}`
85
+ puts doc
86
+ fail "Documentation failed" unless $?.exitstatus == 0
87
+ fail "Undocumented artifacts found" unless doc.include? '100.00% documented'
88
+ end
89
+
90
+ desc "Open documentation in a browser"
91
+ task :viewdoc => [:doc] do
92
+ `xdg-open #{File.join('doc', 'index.html')}`
93
+ end
94
+
95
+ # === Helpers =============================================================== #
96
+ desc "Helper: Inject license into every file in lib"
97
+ task :inject_license do
98
+ license = File.open('LICENSE', 'r') { |f| f.read }
99
+ license = license.each_line.to_a[2..-1].map { |l| "# #{l}".sub(/ *$/, '') }
100
+ license = "#--\n#{license.join('')}#++\n\n"
101
+
102
+ Dir['lib/**/*'].select { |f| not File.directory? f }.each do |f|
103
+ puts f
104
+ content = license + File.open(f, 'r') { |f| f.read }
105
+ #File.open(f, 'w') { |f| f.write content }
106
+ end
107
+ end
108
+
109
+ desc "Helper: Update Bauxite version"
110
+ task :update_version, :version do |t,args|
111
+ version = args[:version]
112
+ unless version
113
+ puts "Usage rake update_version[version]"
114
+ puts ""
115
+ puts "Current version: #{CURRENT_VERSION}"
116
+ exit false
117
+ end
118
+
119
+ content = File.open('lib/bauxite.rb', 'r') { |f| f.read }
120
+ expr = /(.*VERSION = ")([^"]*)(".*)/
121
+
122
+ content = content.each_line.map do |line|
123
+ line.sub(/(.*VERSION = ").*(".*)/, "\\1#{version}\\2")
124
+ end.join
125
+ if version
126
+ puts "Updated version to #{version}"
127
+ File.open('lib/bauxite.rb', 'w') { |f| f.write content }
128
+ end
129
129
  end
data/bin/bauxite CHANGED
@@ -1,27 +1,27 @@
1
- #!/usr/bin/env ruby
2
-
3
- #--
4
- # Copyright (c) 2014 Patricio Zavolinsky
5
- #
6
- # Permission is hereby granted, free of charge, to any person obtaining
7
- # a copy of this software and associated documentation files (the
8
- # "Software"), to deal in the Software without restriction, including
9
- # without limitation the rights to use, copy, modify, merge, publish,
10
- # distribute, sublicense, and/or sell copies of the Software, and to
11
- # permit persons to whom the Software is furnished to do so, subject to
12
- # the following conditions:
13
- #
14
- # The above copyright notice and this permission notice shall be
15
- # included in all copies or substantial portions of the Software.
16
- #
17
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
- # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
- # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
- # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
- #++
25
-
26
- require 'bauxite'
27
- Bauxite::Application::start
1
+ #!/usr/bin/env ruby
2
+
3
+ #--
4
+ # Copyright (c) 2014 Patricio Zavolinsky
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining
7
+ # a copy of this software and associated documentation files (the
8
+ # "Software"), to deal in the Software without restriction, including
9
+ # without limitation the rights to use, copy, modify, merge, publish,
10
+ # distribute, sublicense, and/or sell copies of the Software, and to
11
+ # permit persons to whom the Software is furnished to do so, subject to
12
+ # the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be
15
+ # included in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21
+ # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22
+ # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23
+ # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24
+ #++
25
+
26
+ require 'bauxite'
27
+ Bauxite::Application::start
data/doc/Bauxite.html CHANGED
@@ -6,20 +6,17 @@
6
6
 
7
7
  <title>module Bauxite - RDoc Documentation</title>
8
8
 
9
- <link href="./fonts.css" rel="stylesheet">
10
- <link href="./rdoc.css" rel="stylesheet">
11
-
12
9
  <script type="text/javascript">
13
10
  var rdoc_rel_prefix = "./";
14
11
  </script>
15
12
 
16
13
  <script src="./js/jquery.js"></script>
17
- <script src="./js/navigation.js"></script>
18
- <script src="./js/search_index.js"></script>
19
- <script src="./js/search.js"></script>
20
- <script src="./js/searcher.js"></script>
21
14
  <script src="./js/darkfish.js"></script>
22
15
 
16
+ <link href="./css/fonts.css" rel="stylesheet">
17
+ <link href="./css/rdoc.css" rel="stylesheet">
18
+
19
+
23
20
 
24
21
  <body id="top" role="document" class="module">
25
22
  <nav role="navigation">
@@ -94,7 +91,7 @@
94
91
 
95
92
  <footer id="validator-badges" role="contentinfo">
96
93
  <p><a href="http://validator.w3.org/check/referer">Validate</a>
97
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.2.
98
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
94
+ <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
95
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
99
96
  </footer>
100
97
 
@@ -6,20 +6,17 @@
6
6
 
7
7
  <title>class Bauxite::Action - RDoc Documentation</title>
8
8
 
9
- <link href="../fonts.css" rel="stylesheet">
10
- <link href="../rdoc.css" rel="stylesheet">
11
-
12
9
  <script type="text/javascript">
13
10
  var rdoc_rel_prefix = "../";
14
11
  </script>
15
12
 
16
13
  <script src="../js/jquery.js"></script>
17
- <script src="../js/navigation.js"></script>
18
- <script src="../js/search_index.js"></script>
19
- <script src="../js/search.js"></script>
20
- <script src="../js/searcher.js"></script>
21
14
  <script src="../js/darkfish.js"></script>
22
15
 
16
+ <link href="../css/fonts.css" rel="stylesheet">
17
+ <link href="../css/rdoc.css" rel="stylesheet">
18
+
19
+
23
20
 
24
21
  <body id="top" role="document" class="class">
25
22
  <nav role="navigation">
@@ -194,18 +191,17 @@ attribute to refer to the current test <a href="Context.html">Context</a>.</p>
194
191
 
195
192
  <p>For example (new action template):</p>
196
193
 
197
- <pre class="ruby"><span class="ruby-comment"># === actions/print_source.rb ======= #</span>
198
- <span class="ruby-keyword">class</span> <span class="ruby-constant">Action</span>
199
- <span class="ruby-comment"># :category: Action Methods</span>
200
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">print_source</span>
201
- <span class="ruby-comment"># action code goes here, for example:</span>
202
- <span class="ruby-identifier">puts</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">page_source</span>.
203
- <span class="ruby-identifier">end</span>
204
- <span class="ruby-keyword">end</span>
205
- <span class="ruby-comment"># === end actions/print_source.rb === #</span>
194
+ <pre># === actions/print_source.rb ======= #
195
+ class Action
196
+ # :category: Action Methods
197
+ def print_source
198
+ # action code goes here, for example:
199
+ puts @ctx.driver.page_source.
200
+ end
201
+ end
202
+ # === end actions/print_source.rb === #
206
203
 
207
- <span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">actions</span>.<span class="ruby-identifier">include?</span> <span class="ruby-string">&#39;print_source&#39;</span> <span class="ruby-comment"># =&gt; true</span>
208
- </pre>
204
+ Context::actions.include? &#39;print_source&#39; # =&gt; true</pre>
209
205
 
210
206
  <p>To avoid name clashing with Ruby reserved words, the &#39;_action&#39;
211
207
  suffix can be included in the action method name (this suffix will not be
@@ -358,19 +354,18 @@ not alias_action.</p>
358
354
 
359
355
  <p>For example:</p>
360
356
 
361
- <pre class="ruby"><span class="ruby-keyword">alias</span> <span class="ruby-identifier">hey</span> <span class="ruby-identifier">echo</span> <span class="ruby-string">&quot;$1, nice to see you!&quot;</span>
362
- <span class="ruby-identifier">hey</span> <span class="ruby-identifier">john</span>
363
- <span class="ruby-comment"># =&gt; this would expand to</span>
364
- <span class="ruby-comment"># echo &quot;john, nice to see you!&quot;</span>
365
- </pre>
357
+ <pre>alias hey echo &quot;$1, nice to see you!&quot;
358
+ hey john
359
+ # =&gt; this would expand to
360
+ # echo &quot;john, nice to see you!&quot;</pre>
366
361
 
367
362
 
368
363
 
369
364
 
370
365
  <div class="method-source-code" id="alias_action-source">
371
366
  <pre><span class="ruby-comment"># File lib/bauxite/actions/alias.rb, line 48</span>
372
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">alias_action</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
373
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">add_alias</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>)
367
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">alias_action</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
368
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">add_alias</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>)
374
369
  <span class="ruby-keyword">end</span></pre>
375
370
  </div>
376
371
 
@@ -416,16 +411,16 @@ flags.</p>
416
411
 
417
412
  <div class="method-source-code" id="assert-source">
418
413
  <pre><span class="ruby-comment"># File lib/bauxite/actions/assert.rb, line 38</span>
419
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">assert</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
420
- <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>
421
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
422
- <span class="ruby-identifier">actual</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">e</span>)
423
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
424
- <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 failed: expected &#39;#{text}&#39;, got &#39;#{actual}&#39;&quot;</span>
425
- <span class="ruby-keyword">end</span>
426
- <span class="ruby-keyword">true</span>
427
- <span class="ruby-keyword">end</span>
428
- <span class="ruby-keyword">end</span>
414
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">assert</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
415
+ <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>
416
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
417
+ <span class="ruby-identifier">actual</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">e</span>)
418
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
419
+ <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 failed: expected &#39;#{text}&#39;, got &#39;#{actual}&#39;&quot;</span>
420
+ <span class="ruby-keyword">end</span>
421
+ <span class="ruby-keyword">true</span>
422
+ <span class="ruby-keyword">end</span>
423
+ <span class="ruby-keyword">end</span>
429
424
  <span class="ruby-keyword">end</span></pre>
430
425
  </div>
431
426
 
@@ -479,19 +474,19 @@ every expression specified.</p>
479
474
 
480
475
  <div class="method-source-code" id="asserth-source">
481
476
  <pre><span class="ruby-comment"># File lib/bauxite/actions/asserth.rb, line 46</span>
482
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">asserth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
483
- <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">current_url</span>)
484
- <span class="ruby-identifier">res</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">uri</span>)
485
- <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
486
- <span class="ruby-identifier">name</span>,<span class="ruby-identifier">value</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;=&#39;</span>, <span class="ruby-value">2</span>);
487
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>
488
- <span class="ruby-identifier">value</span> = <span class="ruby-identifier">value</span>.<span class="ruby-identifier">strip</span>
489
-
490
- <span class="ruby-identifier">actual</span> = <span class="ruby-identifier">res</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>
491
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">value</span>)
492
- <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 failed for HTTP Header &#39;#{name}&#39;: expected &#39;#{value}&#39;, got &#39;#{actual}&#39;&quot;</span>
493
- <span class="ruby-keyword">end</span>
494
- <span class="ruby-keyword">end</span>
477
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">asserth</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
478
+ <span class="ruby-identifier">uri</span> = <span class="ruby-constant">URI</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">current_url</span>)
479
+ <span class="ruby-identifier">res</span> = <span class="ruby-constant">Net</span><span class="ruby-operator">::</span><span class="ruby-constant">HTTP</span>.<span class="ruby-identifier">get_response</span>(<span class="ruby-identifier">uri</span>)
480
+ <span class="ruby-identifier">args</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span>
481
+ <span class="ruby-identifier">name</span>,<span class="ruby-identifier">value</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;=&#39;</span>, <span class="ruby-value">2</span>);
482
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">downcase</span>
483
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">value</span>.<span class="ruby-identifier">strip</span>
484
+
485
+ <span class="ruby-identifier">actual</span> = <span class="ruby-identifier">res</span>[<span class="ruby-identifier">name</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>
486
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">value</span>)
487
+ <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 failed for HTTP Header &#39;#{name}&#39;: expected &#39;#{value}&#39;, got &#39;#{actual}&#39;&quot;</span>
488
+ <span class="ruby-keyword">end</span>
489
+ <span class="ruby-keyword">end</span>
495
490
  <span class="ruby-keyword">end</span></pre>
496
491
  </div>
497
492
 
@@ -540,14 +535,14 @@ the popup. Alternatively, the action specified could be to
540
535
 
541
536
  <div class="method-source-code" id="assertm-source">
542
537
  <pre><span class="ruby-comment"># File lib/bauxite/actions/assertm.rb, line 40</span>
543
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertm</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">action</span> = <span class="ruby-string">&#39;accept&#39;</span>)
544
- <span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">with_timeout</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoAlertPresentError</span> <span class="ruby-keyword">do</span>
545
- <span class="ruby-identifier">a</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">alert</span>
546
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
547
- <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 failed: expected &#39;#{text}&#39;, got &#39;#{a.text}&#39;&quot;</span>
548
- <span class="ruby-keyword">end</span>
549
- <span class="ruby-identifier">a</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">action</span>.<span class="ruby-identifier">to_sym</span>)
550
- <span class="ruby-keyword">end</span>
538
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertm</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">action</span> = <span class="ruby-string">&#39;accept&#39;</span>)
539
+ <span class="ruby-identifier">ctx</span>.<span class="ruby-identifier">with_timeout</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoAlertPresentError</span> <span class="ruby-keyword">do</span>
540
+ <span class="ruby-identifier">a</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">switch_to</span>.<span class="ruby-identifier">alert</span>
541
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">a</span>.<span class="ruby-identifier">text</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
542
+ <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 failed: expected &#39;#{text}&#39;, got &#39;#{a.text}&#39;&quot;</span>
543
+ <span class="ruby-keyword">end</span>
544
+ <span class="ruby-identifier">a</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">action</span>.<span class="ruby-identifier">to_sym</span>)
545
+ <span class="ruby-keyword">end</span>
551
546
  <span class="ruby-keyword">end</span></pre>
552
547
  </div>
553
548
 
@@ -590,11 +585,11 @@ href="Action.html#method-i-assert">assert</a> for more details.</p>
590
585
 
591
586
  <div class="method-source-code" id="assertv-source">
592
587
  <pre><span class="ruby-comment"># File lib/bauxite/actions/assertv.rb, line 34</span>
593
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertv</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>)
594
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
595
- <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 failed: &#39;#{actual}&#39; does not match &#39;#{expected}&#39;&quot;</span>
596
- <span class="ruby-keyword">end</span>
597
- <span class="ruby-keyword">true</span>
588
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertv</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>)
589
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
590
+ <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 failed: &#39;#{actual}&#39; does not match &#39;#{expected}&#39;&quot;</span>
591
+ <span class="ruby-keyword">end</span>
592
+ <span class="ruby-keyword">true</span>
598
593
  <span class="ruby-keyword">end</span></pre>
599
594
  </div>
600
595
 
@@ -641,13 +636,13 @@ href="Action.html#method-i-assert">assert</a> for more details.</p>
641
636
 
642
637
  <div class="method-source-code" id="assertw-source">
643
638
  <pre><span class="ruby-comment"># File lib/bauxite/actions/assertw.rb, line 39</span>
644
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertw</span>(<span class="ruby-identifier">count</span> = <span class="ruby-value">1</span>)
645
- <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>
646
- <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handles</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">count</span>.<span class="ruby-identifier">to_i</span>
647
- <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-string">&quot;Assertion failed: all popups must be closed.&quot;</span>
648
- <span class="ruby-keyword">end</span>
649
- <span class="ruby-keyword">true</span>
650
- <span class="ruby-keyword">end</span>
639
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">assertw</span>(<span class="ruby-identifier">count</span> = <span class="ruby-value">1</span>)
640
+ <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>
641
+ <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">window_handles</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">count</span>.<span class="ruby-identifier">to_i</span>
642
+ <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-string">&quot;Assertion failed: all popups must be closed.&quot;</span>
643
+ <span class="ruby-keyword">end</span>
644
+ <span class="ruby-keyword">true</span>
645
+ <span class="ruby-keyword">end</span>
651
646
  <span class="ruby-keyword">end</span></pre>
652
647
  </div>
653
648
 
@@ -681,17 +676,16 @@ break_action.</p>
681
676
 
682
677
  <p>For example:</p>
683
678
 
684
- <pre class="ruby"><span class="ruby-keyword">break</span>
685
- <span class="ruby-comment"># =&gt; echoes &quot;Press ENTER to continue&quot; and waits for user input</span>
686
- </pre>
679
+ <pre>break
680
+ # =&gt; echoes &quot;Press ENTER to continue&quot; and waits for user input</pre>
687
681
 
688
682
 
689
683
 
690
684
 
691
685
  <div class="method-source-code" id="break_action-source">
692
686
  <pre><span class="ruby-comment"># File lib/bauxite/actions/break.rb, line 36</span>
693
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">break_action</span>
694
- <span class="ruby-identifier">lambda</span> { <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">wait</span> }
687
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">break_action</span>
688
+ <span class="ruby-identifier">lambda</span> { <span class="ruby-constant">Bauxite</span><span class="ruby-operator">::</span><span class="ruby-constant">Context</span><span class="ruby-operator">::</span><span class="ruby-identifier">wait</span> }
695
689
  <span class="ruby-keyword">end</span></pre>
696
690
  </div>
697
691
 
@@ -739,26 +733,26 @@ will be stored in <code>__CAPTURE__</code>.</p>
739
733
 
740
734
  <div class="method-source-code" id="capture-source">
741
735
  <pre><span class="ruby-comment"># File lib/bauxite/actions/capture.rb, line 40</span>
742
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">capture</span>(<span class="ruby-identifier">file</span> = <span class="ruby-keyword">nil</span>)
743
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>
744
- <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>
745
- <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>]
746
- <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>
747
-
748
- <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>
749
- <span class="ruby-identifier">file</span> = <span class="ruby-identifier">file</span>[<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">start_with?</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
750
-
751
- <span class="ruby-identifier">file</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;_#{seq}&quot;</span>
752
- <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>
753
- <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>
754
- <span class="ruby-keyword">end</span>
755
-
756
- <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">output_path</span>(<span class="ruby-identifier">file</span>)
757
-
758
- <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>)
759
-
760
- <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>
761
- <span class="ruby-keyword">true</span>
736
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">capture</span>(<span class="ruby-identifier">file</span> = <span class="ruby-keyword">nil</span>)
737
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">file</span>
738
+ <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>
739
+ <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>]
740
+ <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>
741
+
742
+ <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__FILE__&#39;</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>
743
+ <span class="ruby-identifier">file</span> = <span class="ruby-identifier">file</span>[<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>.<span class="ruby-identifier">size</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">file</span>.<span class="ruby-identifier">start_with?</span> <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
744
+
745
+ <span class="ruby-identifier">file</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;_#{seq}&quot;</span>
746
+ <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>
747
+ <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>
748
+ <span class="ruby-keyword">end</span>
749
+
750
+ <span class="ruby-identifier">file</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">output_path</span>(<span class="ruby-identifier">file</span>)
751
+
752
+ <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>)
753
+
754
+ <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>
755
+ <span class="ruby-keyword">true</span>
762
756
  <span class="ruby-keyword">end</span></pre>
763
757
  </div>
764
758
 
@@ -797,9 +791,9 @@ will be stored in <code>__CAPTURE__</code>.</p>
797
791
 
798
792
  <div class="method-source-code" id="click-source">
799
793
  <pre><span class="ruby-comment"># File lib/bauxite/actions/click.rb, line 32</span>
800
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">click</span>(<span class="ruby-identifier">selector</span>)
801
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">click</span> }
802
- <span class="ruby-keyword">true</span>
794
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">click</span>(<span class="ruby-identifier">selector</span>)
795
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-identifier">e</span>.<span class="ruby-identifier">click</span> }
796
+ <span class="ruby-keyword">true</span>
803
797
  <span class="ruby-keyword">end</span></pre>
804
798
  </div>
805
799
 
@@ -842,12 +836,12 @@ autocomplete (pressing the <code>TAB</code> key).</p>
842
836
 
843
837
  <div class="method-source-code" id="debug-source">
844
838
  <pre><span class="ruby-comment"># File lib/bauxite/actions/debug.rb, line 35</span>
845
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">debug</span>
846
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span>
847
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</span>({ <span class="ruby-string">&#39;__DEBUG__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span>
848
- <span class="ruby-identifier">_debug_process</span>
849
- <span class="ruby-keyword">end</span>
850
- <span class="ruby-keyword">end</span>
839
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">debug</span>
840
+ <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span>
841
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</span>({ <span class="ruby-string">&#39;__DEBUG__&#39;</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> }) <span class="ruby-keyword">do</span>
842
+ <span class="ruby-identifier">_debug_process</span>
843
+ <span class="ruby-keyword">end</span>
844
+ <span class="ruby-keyword">end</span>
851
845
  <span class="ruby-keyword">end</span></pre>
852
846
  </div>
853
847
 
@@ -880,24 +874,23 @@ href="Action.html#method-i-assertv">assertv</a>.</p>
880
874
 
881
875
  <p>For example:</p>
882
876
 
883
- <pre class="ruby"><span class="ruby-identifier">set</span> <span class="ruby-identifier">first</span> <span class="ruby-identifier">john</span>
884
- <span class="ruby-identifier">set</span> <span class="ruby-identifier">last</span> <span class="ruby-identifier">doe</span>
885
- <span class="ruby-identifier">doif</span> <span class="ruby-identifier">john</span> ${<span class="ruby-identifier">first</span>} <span class="ruby-identifier">assertv</span> <span class="ruby-identifier">doe</span> ${<span class="ruby-identifier">last</span>}
886
- <span class="ruby-comment"># =&gt; this assertion would pass.</span>
877
+ <pre>set first john
878
+ set last doe
879
+ doif john ${first} assertv doe ${last}
880
+ # =&gt; this assertion would pass.
887
881
 
888
- <span class="ruby-identifier">doif</span> <span class="ruby-identifier">smith</span> ${<span class="ruby-identifier">last</span>} <span class="ruby-identifier">load</span> <span class="ruby-identifier">smith_specific_text</span>.<span class="ruby-identifier">bxt</span>
889
- <span class="ruby-comment"># =&gt; this would only load smith_specific_text.bxt if the last</span>
890
- <span class="ruby-comment"># variable matches &#39;smith&#39;</span>
891
- </pre>
882
+ doif smith ${last} load smith_specific_text.bxt
883
+ # =&gt; this would only load smith_specific_text.bxt if the last
884
+ # variable matches &#39;smith&#39;</pre>
892
885
 
893
886
 
894
887
 
895
888
 
896
889
  <div class="method-source-code" id="doif-source">
897
890
  <pre><span class="ruby-comment"># File lib/bauxite/actions/doif.rb, line 39</span>
898
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">doif</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
899
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
900
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_action_object</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>))
891
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">doif</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
892
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
893
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_action_object</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>))
901
894
  <span class="ruby-keyword">end</span></pre>
902
895
  </div>
903
896
 
@@ -930,24 +923,23 @@ href="Action.html#method-i-assertv">assertv</a>.</p>
930
923
 
931
924
  <p>For example:</p>
932
925
 
933
- <pre class="ruby"><span class="ruby-identifier">set</span> <span class="ruby-identifier">first</span> <span class="ruby-identifier">john</span>
934
- <span class="ruby-identifier">set</span> <span class="ruby-identifier">last</span> <span class="ruby-identifier">doe</span>
935
- <span class="ruby-identifier">dounless</span> <span class="ruby-identifier">james</span> ${<span class="ruby-identifier">first</span>} <span class="ruby-identifier">assertv</span> <span class="ruby-identifier">doe</span> ${<span class="ruby-identifier">last</span>}
936
- <span class="ruby-comment"># =&gt; this assertion would pass.</span>
926
+ <pre>set first john
927
+ set last doe
928
+ dounless james ${first} assertv doe ${last}
929
+ # =&gt; this assertion would pass.
937
930
 
938
- <span class="ruby-identifier">dounless</span> <span class="ruby-keyword">false</span> ${<span class="ruby-identifier">load_captcha</span>} <span class="ruby-identifier">load</span> <span class="ruby-identifier">captcha</span>.<span class="ruby-identifier">bxt</span>
939
- <span class="ruby-comment"># =&gt; this would only load captcha.bxt if the load_captcha</span>
940
- <span class="ruby-comment"># variable is not &#39;false&#39;</span>
941
- </pre>
931
+ dounless false ${load_captcha} load captcha.bxt
932
+ # =&gt; this would only load captcha.bxt if the load_captcha
933
+ # variable is not &#39;false&#39;</pre>
942
934
 
943
935
 
944
936
 
945
937
 
946
938
  <div class="method-source-code" id="dounless-source">
947
939
  <pre><span class="ruby-comment"># File lib/bauxite/actions/dounless.rb, line 39</span>
948
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">dounless</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
949
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
950
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_action_object</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>))
940
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">dounless</span>(<span class="ruby-identifier">expected</span>, <span class="ruby-identifier">actual</span>, <span class="ruby-identifier">action</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
941
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">expected</span>)
942
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_action_object</span>(<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_action</span>(<span class="ruby-identifier">action</span>, <span class="ruby-identifier">args</span>))
951
943
  <span class="ruby-keyword">end</span></pre>
952
944
  </div>
953
945
 
@@ -988,8 +980,8 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
988
980
 
989
981
  <div class="method-source-code" id="echo-source">
990
982
  <pre><span class="ruby-comment"># File lib/bauxite/actions/echo.rb, line 33</span>
991
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">echo</span>(<span class="ruby-identifier">text</span>)
992
- <span class="ruby-keyword">true</span>
983
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">echo</span>(<span class="ruby-identifier">text</span>)
984
+ <span class="ruby-keyword">true</span>
993
985
  <span class="ruby-keyword">end</span></pre>
994
986
  </div>
995
987
 
@@ -1033,16 +1025,16 @@ results of the execution will be assigned to the variable named
1033
1025
 
1034
1026
  <div class="method-source-code" id="exec-source">
1035
1027
  <pre><span class="ruby-comment"># File lib/bauxite/actions/exec.rb, line 35</span>
1036
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">command</span>)
1037
- <span class="ruby-identifier">data</span> = <span class="ruby-identifier">command</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;=&#39;</span>, <span class="ruby-value">2</span>)
1038
- <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>
1039
- <span class="ruby-keyword">if</span> (<span class="ruby-identifier">data</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>)
1040
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
1041
- <span class="ruby-identifier">command</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>]
1042
- <span class="ruby-keyword">end</span>
1043
-
1044
- <span class="ruby-identifier">ret</span> = <span class="ruby-node">%x#{command.join(&#39; &#39;)}`</span>
1045
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>
1028
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">command</span>)
1029
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">command</span>[<span class="ruby-value">0</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&#39;=&#39;</span>, <span class="ruby-value">2</span>)
1030
+ <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>
1031
+ <span class="ruby-keyword">if</span> (<span class="ruby-identifier">data</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">2</span>)
1032
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">0</span>]
1033
+ <span class="ruby-identifier">command</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">data</span>[<span class="ruby-value">1</span>]
1034
+ <span class="ruby-keyword">end</span>
1035
+
1036
+ <span class="ruby-identifier">ret</span> = <span class="ruby-node">%x`#{command.join(&#39; &#39;)}`</span>
1037
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">ret</span>.<span class="ruby-identifier">strip</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>
1046
1038
  <span class="ruby-keyword">end</span></pre>
1047
1039
  </div>
1048
1040
 
@@ -1071,18 +1063,17 @@ results of the execution will be assigned to the variable named
1071
1063
 
1072
1064
  <p>For example:</p>
1073
1065
 
1074
- <pre class="ruby"><span class="ruby-identifier">exit</span>
1075
- <span class="ruby-identifier">assertv</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">false</span>
1076
- <span class="ruby-comment"># =&gt; the assertv will NOT be executed</span>
1077
- </pre>
1066
+ <pre>exit
1067
+ assertv true false
1068
+ # =&gt; the assertv will NOT be executed</pre>
1078
1069
 
1079
1070
 
1080
1071
 
1081
1072
 
1082
1073
  <div class="method-source-code" id="exit_action-source">
1083
1074
  <pre><span class="ruby-comment"># File lib/bauxite/actions/exit.rb, line 32</span>
1084
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">exit_action</span>
1085
- <span class="ruby-value">:break</span>
1075
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">exit_action</span>
1076
+ <span class="ruby-value">:break</span>
1086
1077
  <span class="ruby-keyword">end</span></pre>
1087
1078
  </div>
1088
1079
 
@@ -1125,29 +1116,28 @@ href="Action.html#method-i-test">test</a>, etc.) is undefined.</p>
1125
1116
 
1126
1117
  <p>For example:</p>
1127
1118
 
1128
- <pre class="ruby"><span class="ruby-comment"># assuming &lt;input type=&quot;text&quot; id=&quot;hello&quot; value=&quot;world&quot; /&gt;</span>
1129
- <span class="ruby-identifier">assert</span> <span class="ruby-identifier">hello</span> <span class="ruby-identifier">world</span>
1130
- <span class="ruby-identifier">failif</span> <span class="ruby-identifier">assert</span> <span class="ruby-identifier">hello</span> <span class="ruby-identifier">universe</span>
1131
- <span class="ruby-identifier">failif</span> <span class="ruby-identifier">assertv</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">false</span>
1132
- <span class="ruby-comment"># =&gt; these assertions would pass</span>
1133
- </pre>
1119
+ <pre># assuming &lt;input type=&quot;text&quot; id=&quot;hello&quot; value=&quot;world&quot; /&gt;
1120
+ assert hello world
1121
+ failif assert hello universe
1122
+ failif assertv true false
1123
+ # =&gt; these assertions would pass</pre>
1134
1124
 
1135
1125
 
1136
1126
 
1137
1127
 
1138
1128
  <div class="method-source-code" id="failif-source">
1139
1129
  <pre><span class="ruby-comment"># File lib/bauxite/actions/failif.rb, line 40</span>
1140
- <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>)
1141
- <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>
1142
- <span class="ruby-keyword">begin</span>
1143
- <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>
1144
- <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>)
1145
- <span class="ruby-keyword">end</span>
1146
- <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-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>
1147
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span>
1148
- <span class="ruby-keyword">end</span>
1149
- <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>
1150
- <span class="ruby-keyword">end</span>
1130
+ <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>)
1131
+ <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>
1132
+ <span class="ruby-keyword">begin</span>
1133
+ <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>
1134
+ <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>)
1135
+ <span class="ruby-keyword">end</span>
1136
+ <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-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>
1137
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span>
1138
+ <span class="ruby-keyword">end</span>
1139
+ <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>
1140
+ <span class="ruby-keyword">end</span>
1151
1141
  <span class="ruby-keyword">end</span></pre>
1152
1142
  </div>
1153
1143
 
@@ -1180,20 +1170,19 @@ using the Javascript <code>return</code> statement.</p>
1180
1170
 
1181
1171
  <p>For example:</p>
1182
1172
 
1183
- <pre class="ruby"><span class="ruby-identifier">js</span> <span class="ruby-string">&quot;return document.title&quot;</span> <span class="ruby-identifier">title_var</span>
1184
- <span class="ruby-identifier">echo</span> <span class="ruby-string">&quot;${title_var}&quot;</span>
1185
- <span class="ruby-comment"># =&gt; this would print the title of the page</span>
1186
- </pre>
1173
+ <pre>js &quot;return document.title&quot; title_var
1174
+ echo &quot;${title_var}&quot;
1175
+ # =&gt; this would print the title of the page</pre>
1187
1176
 
1188
1177
 
1189
1178
 
1190
1179
 
1191
1180
  <div class="method-source-code" id="js-source">
1192
1181
  <pre><span class="ruby-comment"># File lib/bauxite/actions/js.rb, line 36</span>
1193
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">js</span>(<span class="ruby-identifier">script</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>)
1194
- <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">execute_script</span>(<span class="ruby-identifier">script</span>)
1195
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">result</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>
1196
- <span class="ruby-keyword">true</span>
1182
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">js</span>(<span class="ruby-identifier">script</span>, <span class="ruby-identifier">name</span> = <span class="ruby-keyword">nil</span>)
1183
+ <span class="ruby-identifier">result</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">execute_script</span>(<span class="ruby-identifier">script</span>)
1184
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">result</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>
1185
+ <span class="ruby-keyword">true</span>
1197
1186
  <span class="ruby-keyword">end</span></pre>
1198
1187
  </div>
1199
1188
 
@@ -1249,8 +1238,8 @@ href="Context.html#method-i-with_vars">Bauxite::Context#with_vars</a>).</p>
1249
1238
 
1250
1239
  <div class="method-source-code" id="load-source">
1251
1240
  <pre><span class="ruby-comment"># File lib/bauxite/actions/load.rb, line 46</span>
1252
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1253
- <span class="ruby-identifier">tryload</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-operator">||</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">FileNotFoundError</span>, <span class="ruby-node">&quot;File not found: #{file}&quot;</span>)
1241
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1242
+ <span class="ruby-identifier">tryload</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-operator">||</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">FileNotFoundError</span>, <span class="ruby-node">&quot;File not found: #{file}&quot;</span>)
1254
1243
  <span class="ruby-keyword">end</span></pre>
1255
1244
  </div>
1256
1245
 
@@ -1288,9 +1277,9 @@ href="Context.html#method-i-with_vars">Bauxite::Context#with_vars</a>).</p>
1288
1277
 
1289
1278
  <div class="method-source-code" id="open-source">
1290
1279
  <pre><span class="ruby-comment"># File lib/bauxite/actions/open.rb, line 31</span>
1291
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">url</span>)
1292
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">navigate</span>.<span class="ruby-identifier">to</span> <span class="ruby-identifier">url</span>
1293
- <span class="ruby-keyword">true</span>
1280
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">open</span>(<span class="ruby-identifier">url</span>)
1281
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">navigate</span>.<span class="ruby-identifier">to</span> <span class="ruby-identifier">url</span>
1282
+ <span class="ruby-keyword">true</span>
1294
1283
  <span class="ruby-keyword">end</span></pre>
1295
1284
  </div>
1296
1285
 
@@ -1330,13 +1319,13 @@ empty.</p>
1330
1319
 
1331
1320
  <div class="method-source-code" id="params-source">
1332
1321
  <pre><span class="ruby-comment"># File lib/bauxite/actions/params.rb, line 32</span>
1333
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">params</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1334
- <span class="ruby-identifier">missing</span> = <span class="ruby-identifier">vars</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> (<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">v</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>) <span class="ruby-operator">==</span> <span class="ruby-string">&#39;&#39;</span> }.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;, &#39;</span>)
1335
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">missing</span> <span class="ruby-operator">!=</span> <span class="ruby-string">&#39;&#39;</span>
1336
- <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>,
1337
- <span class="ruby-node">&quot;Assertion failed: the following variables must be defined and not be empty: #{missing}.&quot;</span>
1338
- <span class="ruby-keyword">end</span>
1339
- <span class="ruby-keyword">true</span>
1322
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">params</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1323
+ <span class="ruby-identifier">missing</span> = <span class="ruby-identifier">vars</span>.<span class="ruby-identifier">select</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">v</span><span class="ruby-operator">|</span> (<span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">v</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&#39;&#39;</span>) <span class="ruby-operator">==</span> <span class="ruby-string">&#39;&#39;</span> }.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;, &#39;</span>)
1324
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">missing</span> <span class="ruby-operator">!=</span> <span class="ruby-string">&#39;&#39;</span>
1325
+ <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>,
1326
+ <span class="ruby-node">&quot;Assertion failed: the following variables must be defined and not be empty: #{missing}.&quot;</span>
1327
+ <span class="ruby-keyword">end</span>
1328
+ <span class="ruby-keyword">true</span>
1340
1329
  <span class="ruby-keyword">end</span></pre>
1341
1330
  </div>
1342
1331
 
@@ -1367,19 +1356,18 @@ empty.</p>
1367
1356
 
1368
1357
  <p>For example:</p>
1369
1358
 
1370
- <pre class="ruby"><span class="ruby-identifier">set</span> <span class="ruby-identifier">place</span> <span class="ruby-string">&quot;World&quot;</span>
1371
- <span class="ruby-identifier">replace</span> <span class="ruby-string">&quot;Hello ${place}&quot;</span> <span class="ruby-string">&quot;World&quot;</span> <span class="ruby-string">&quot;Universe&quot;</span> <span class="ruby-identifier">greeting</span>
1372
- <span class="ruby-identifier">echo</span> <span class="ruby-string">&quot;${greeting}!&quot;</span>
1373
- <span class="ruby-comment"># =&gt; this would print &#39;Hello Universe!&#39;</span>
1374
- </pre>
1359
+ <pre>set place &quot;World&quot;
1360
+ replace &quot;Hello ${place}&quot; &quot;World&quot; &quot;Universe&quot; greeting
1361
+ echo &quot;${greeting}!&quot;
1362
+ # =&gt; this would print &#39;Hello Universe!&#39;</pre>
1375
1363
 
1376
1364
 
1377
1365
 
1378
1366
 
1379
1367
  <div class="method-source-code" id="replace-source">
1380
1368
  <pre><span class="ruby-comment"># File lib/bauxite/actions/replace.rb, line 34</span>
1381
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">replacement</span>, <span class="ruby-identifier">name</span>)
1382
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">pattern</span>), <span class="ruby-identifier">replacement</span>)
1369
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">replace</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">pattern</span>, <span class="ruby-identifier">replacement</span>, <span class="ruby-identifier">name</span>)
1370
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">pattern</span>), <span class="ruby-identifier">replacement</span>)
1383
1371
  <span class="ruby-keyword">end</span></pre>
1384
1372
  </div>
1385
1373
 
@@ -1420,9 +1408,9 @@ are destroyed.</p>
1420
1408
 
1421
1409
  <div class="method-source-code" id="reset-source">
1422
1410
  <pre><span class="ruby-comment"># File lib/bauxite/actions/reset.rb, line 34</span>
1423
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">reset</span>()
1424
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">reset_driver</span>
1425
- <span class="ruby-keyword">true</span>
1411
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reset</span>()
1412
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">reset_driver</span>
1413
+ <span class="ruby-keyword">true</span>
1426
1414
  <span class="ruby-keyword">end</span></pre>
1427
1415
  </div>
1428
1416
 
@@ -1473,35 +1461,34 @@ href="Action.html#method-i-click">click</a>, <a
1473
1461
  href="Action.html#method-i-store">store</a> and <a
1474
1462
  href="Action.html#method-i-assert">assert</a> for more details):</p>
1475
1463
 
1476
- <pre class="ruby"><span class="ruby-comment"># in main.bxt</span>
1477
- <span class="ruby-identifier">load</span> <span class="ruby-identifier">login</span>.<span class="ruby-identifier">txt</span> <span class="ruby-string">&quot;username=jdoe&quot;</span> <span class="ruby-string">&quot;password=hello world!&quot;</span>
1464
+ <pre># in main.bxt
1465
+ load login.txt &quot;username=jdoe&quot; &quot;password=hello world!&quot;
1478
1466
 
1479
- <span class="ruby-comment"># in login.bxt</span>
1480
- <span class="ruby-identifier">write</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">user</span> <span class="ruby-string">&quot;${username}&quot;</span>
1481
- <span class="ruby-identifier">write</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">pass</span> <span class="ruby-string">&quot;${password}&quot;</span>
1482
- <span class="ruby-identifier">click</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">login</span>
1483
- <span class="ruby-identifier">store</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">loginName</span> <span class="ruby-identifier">fullName</span>
1484
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">fullName</span>
1467
+ # in login.bxt
1468
+ write id=user &quot;${username}&quot;
1469
+ write id=pass &quot;${password}&quot;
1470
+ click id=login
1471
+ store id=loginName fullName
1472
+ return fullName
1485
1473
 
1486
- <span class="ruby-comment"># back in main.bxt</span>
1487
- <span class="ruby-identifier">assert</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">greeting</span> <span class="ruby-string">&quot;Welcome ${fullName}!&quot;</span>
1488
- <span class="ruby-comment"># =&gt; this assertion uses the variable returned from login.bxt</span>
1489
- </pre>
1474
+ # back in main.bxt
1475
+ assert id=greeting &quot;Welcome ${fullName}!&quot;
1476
+ # =&gt; this assertion uses the variable returned from login.bxt</pre>
1490
1477
 
1491
1478
 
1492
1479
 
1493
1480
 
1494
1481
  <div class="method-source-code" id="return_action-source">
1495
1482
  <pre><span class="ruby-comment"># File lib/bauxite/actions/return.rb, line 58</span>
1496
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">return_action</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1497
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">vars</span> <span class="ruby-operator">==</span> [<span class="ruby-string">&#39;*&#39;</span>]
1498
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] = <span class="ruby-identifier">vars</span>
1499
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span>
1500
- <span class="ruby-keyword">end</span>
1501
-
1502
- <span class="ruby-identifier">rets</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] <span class="ruby-operator">||</span> []
1503
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] = <span class="ruby-identifier">rets</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">vars</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">rets</span>.<span class="ruby-identifier">include?</span> <span class="ruby-string">&#39;*&#39;</span>
1504
- <span class="ruby-keyword">true</span>
1483
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">return_action</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1484
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">vars</span> <span class="ruby-operator">==</span> [<span class="ruby-string">&#39;*&#39;</span>]
1485
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] = <span class="ruby-identifier">vars</span>
1486
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span>
1487
+ <span class="ruby-keyword">end</span>
1488
+
1489
+ <span class="ruby-identifier">rets</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] <span class="ruby-operator">||</span> []
1490
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-string">&#39;__RETURN__&#39;</span>] = <span class="ruby-identifier">rets</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">vars</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">rets</span>.<span class="ruby-identifier">include?</span> <span class="ruby-string">&#39;*&#39;</span>
1491
+ <span class="ruby-keyword">true</span>
1505
1492
  <span class="ruby-keyword">end</span></pre>
1506
1493
  </div>
1507
1494
 
@@ -1559,13 +1546,13 @@ href="Context.html">Context</a> instance as its only argument.</p>
1559
1546
 
1560
1547
  <div class="method-source-code" id="ruby-source">
1561
1548
  <pre><span class="ruby-comment"># File lib/bauxite/actions/ruby.rb, line 50</span>
1562
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">ruby</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1563
- <span class="ruby-comment"># _load_file_action is defined in tryload.rb</span>
1564
- <span class="ruby-identifier">_load_file_action</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1565
- <span class="ruby-identifier">content</span> = <span class="ruby-string">&#39;&#39;</span>
1566
- <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">f</span>, <span class="ruby-string">&#39;r&#39;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">ff</span><span class="ruby-operator">|</span> <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ff</span>.<span class="ruby-identifier">read</span> }
1567
- <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">content</span>).<span class="ruby-identifier">call</span>(<span class="ruby-ivar">@ctx</span>)
1568
- <span class="ruby-keyword">end</span> <span class="ruby-operator">||</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">FileNotFoundError</span>, <span class="ruby-node">&quot;File not found: #{file}&quot;</span>)
1549
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ruby</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1550
+ <span class="ruby-comment"># _load_file_action is defined in tryload.rb
1551
+ <span class="ruby-identifier">_load_file_action</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1552
+ <span class="ruby-identifier">content</span> = <span class="ruby-string">&#39;&#39;</span>
1553
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">f</span>, <span class="ruby-string">&#39;r&#39;</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">ff</span><span class="ruby-operator">|</span> <span class="ruby-identifier">content</span> = <span class="ruby-identifier">ff</span>.<span class="ruby-identifier">read</span> }
1554
+ <span class="ruby-identifier">eval</span>(<span class="ruby-identifier">content</span>).<span class="ruby-identifier">call</span>(<span class="ruby-ivar">@ctx</span>)
1555
+ <span class="ruby-keyword">end</span> <span class="ruby-operator">||</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">FileNotFoundError</span>, <span class="ruby-node">&quot;File not found: #{file}&quot;</span>)
1569
1556
  <span class="ruby-keyword">end</span></pre>
1570
1557
  </div>
1571
1558
 
@@ -1612,15 +1599,15 @@ the target <code>HTMLOption</code>.</p>
1612
1599
 
1613
1600
  <div class="method-source-code" id="select-source">
1614
1601
  <pre><span class="ruby-comment"># File lib/bauxite/actions/select.rb, line 38</span>
1615
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">select</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
1616
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
1617
- <span class="ruby-identifier">e</span> = <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Support</span><span class="ruby-operator">::</span><span class="ruby-constant">Select</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">e</span>)
1618
- <span class="ruby-keyword">begin</span>
1619
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">select_by</span>(<span class="ruby-value">:value</span>, <span class="ruby-identifier">text</span>)
1620
- <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>
1621
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">select_by</span>(<span class="ruby-value">:text</span>, <span class="ruby-identifier">text</span>)
1622
- <span class="ruby-keyword">end</span>
1623
- <span class="ruby-keyword">end</span>
1602
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">select</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
1603
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
1604
+ <span class="ruby-identifier">e</span> = <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Support</span><span class="ruby-operator">::</span><span class="ruby-constant">Select</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">e</span>)
1605
+ <span class="ruby-keyword">begin</span>
1606
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">select_by</span>(<span class="ruby-value">:value</span>, <span class="ruby-identifier">text</span>)
1607
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">NoSuchElementError</span>
1608
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">select_by</span>(<span class="ruby-value">:text</span>, <span class="ruby-identifier">text</span>)
1609
+ <span class="ruby-keyword">end</span>
1610
+ <span class="ruby-keyword">end</span>
1624
1611
  <span class="ruby-keyword">end</span></pre>
1625
1612
  </div>
1626
1613
 
@@ -1665,8 +1652,8 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
1665
1652
 
1666
1653
  <div class="method-source-code" id="set-source">
1667
1654
  <pre><span class="ruby-comment"># File lib/bauxite/actions/set.rb, line 36</span>
1668
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1669
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1655
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>)
1656
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1670
1657
  <span class="ruby-keyword">end</span></pre>
1671
1658
  </div>
1672
1659
 
@@ -1697,25 +1684,24 @@ execution fails, the value of <code>name</code> is left unchanged.</p>
1697
1684
 
1698
1685
  <p>For example:</p>
1699
1686
 
1700
- <pre class="ruby"><span class="ruby-identifier">set</span> <span class="ruby-identifier">name</span> <span class="ruby-identifier">john</span>
1701
- <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>
1702
- <span class="ruby-identifier">assertv</span> <span class="ruby-keyword">true</span> ${<span class="ruby-identifier">is_john</span>}
1703
- <span class="ruby-comment"># =&gt; the assertion would pass</span>
1704
- </pre>
1687
+ <pre>set name john
1688
+ setif is_john true assertv &quot;/John/i&quot; &quot;${name}&quot;
1689
+ assertv true ${is_john}
1690
+ # =&gt; the assertion would pass</pre>
1705
1691
 
1706
1692
 
1707
1693
 
1708
1694
 
1709
1695
  <div class="method-source-code" id="setif-source">
1710
1696
  <pre><span class="ruby-comment"># File lib/bauxite/actions/setif.rb, line 35</span>
1711
- <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>)
1712
- <span class="ruby-keyword">begin</span>
1713
- <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>)
1714
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1715
- <span class="ruby-keyword">true</span>
1716
- <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>
1717
- <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span>
1718
- <span class="ruby-keyword">end</span>
1697
+ <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>)
1698
+ <span class="ruby-keyword">begin</span>
1699
+ <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>)
1700
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">value</span>
1701
+ <span class="ruby-keyword">true</span>
1702
+ <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>
1703
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">false</span>
1704
+ <span class="ruby-keyword">end</span>
1719
1705
  <span class="ruby-keyword">end</span></pre>
1720
1706
  </div>
1721
1707
 
@@ -1757,15 +1743,15 @@ href="Action.html#method-i-assert">assert</a> for more details.</p>
1757
1743
 
1758
1744
  <div class="method-source-code" id="source-source">
1759
1745
  <pre><span class="ruby-comment"># File lib/bauxite/actions/source.rb, line 34</span>
1760
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">source</span>(<span class="ruby-identifier">text</span>)
1761
- <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>
1762
- <span class="ruby-identifier">actual</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">page_source</span>
1763
- <span class="ruby-identifier">verbose</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">options</span>[<span class="ruby-value">:verbose</span>] <span class="ruby-operator">?</span> <span class="ruby-node">&quot;\nPage source:\n#{actual}&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&#39;&#39;</span>
1764
- <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
1765
- <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 failed: page source does not match &#39;#{text}&#39;#{verbose}&quot;</span>
1766
- <span class="ruby-keyword">end</span>
1767
- <span class="ruby-keyword">true</span>
1768
- <span class="ruby-keyword">end</span>
1746
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">source</span>(<span class="ruby-identifier">text</span>)
1747
+ <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>
1748
+ <span class="ruby-identifier">actual</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">driver</span>.<span class="ruby-identifier">page_source</span>
1749
+ <span class="ruby-identifier">verbose</span> = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">options</span>[<span class="ruby-value">:verbose</span>] <span class="ruby-operator">?</span> <span class="ruby-node">&quot;\nPage source:\n#{actual}&quot;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&#39;&#39;</span>
1750
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">actual</span> <span class="ruby-operator">=~</span> <span class="ruby-identifier">_pattern</span>(<span class="ruby-identifier">text</span>)
1751
+ <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 failed: page source does not match &#39;#{text}&#39;#{verbose}&quot;</span>
1752
+ <span class="ruby-keyword">end</span>
1753
+ <span class="ruby-keyword">true</span>
1754
+ <span class="ruby-keyword">end</span>
1769
1755
  <span class="ruby-keyword">end</span></pre>
1770
1756
  </div>
1771
1757
 
@@ -1798,19 +1784,18 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
1798
1784
 
1799
1785
  <p>For example:</p>
1800
1786
 
1801
- <pre class="ruby"><span class="ruby-comment"># assuming &lt;span id=&quot;name&quot;&gt;John&lt;/span&gt;</span>
1802
- <span class="ruby-identifier">store</span> <span class="ruby-identifier">id</span>=<span class="ruby-identifier">name</span> <span class="ruby-identifier">firstName</span>
1803
- <span class="ruby-identifier">echo</span> <span class="ruby-node">&quot;${firstName}
1804
- # =&gt; this would print &#39;John&#39;
1805
- </span></pre>
1787
+ <pre># assuming &lt;span id=&quot;name&quot;&gt;John&lt;/span&gt;
1788
+ store id=name firstName
1789
+ echo &quot;${firstName}
1790
+ # =&gt; this would print &#39;John&#39;</pre>
1806
1791
 
1807
1792
 
1808
1793
 
1809
1794
 
1810
1795
  <div class="method-source-code" id="store-source">
1811
1796
  <pre><span class="ruby-comment"># File lib/bauxite/actions/store.rb, line 35</span>
1812
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">name</span>)
1813
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">e</span>) }
1797
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">store</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">name</span>)
1798
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span> <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">variables</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">get_value</span>(<span class="ruby-identifier">e</span>) }
1814
1799
  <span class="ruby-keyword">end</span></pre>
1815
1800
  </div>
1816
1801
 
@@ -1849,10 +1834,10 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
1849
1834
 
1850
1835
  <div class="method-source-code" id="submit-source">
1851
1836
  <pre><span class="ruby-comment"># File lib/bauxite/actions/submit.rb, line 32</span>
1852
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">submit</span>(<span class="ruby-identifier">selector</span>)
1853
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
1854
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">submit</span>
1855
- <span class="ruby-keyword">end</span>
1837
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">submit</span>(<span class="ruby-identifier">selector</span>)
1838
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
1839
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">submit</span>
1840
+ <span class="ruby-keyword">end</span>
1856
1841
  <span class="ruby-keyword">end</span></pre>
1857
1842
  </div>
1858
1843
 
@@ -1892,41 +1877,40 @@ the execution continues with the next test context (if any).</p>
1892
1877
 
1893
1878
  <p>For example:</p>
1894
1879
 
1895
- <pre class="ruby"><span class="ruby-identifier">test</span> <span class="ruby-identifier">mytest</span>.<span class="ruby-identifier">bxt</span> <span class="ruby-string">&quot;My Test&quot;</span> <span class="ruby-identifier">my_var</span>=<span class="ruby-value">1</span>
1896
- <span class="ruby-comment"># =&gt; this would load mytest.bxt into a new test context</span>
1897
- <span class="ruby-comment"># named &quot;My Test&quot;, and within that context ${my_var}</span>
1898
- <span class="ruby-comment"># would expand to 1.</span>
1899
- </pre>
1880
+ <pre>test mytest.bxt &quot;My Test&quot; my_var=1
1881
+ # =&gt; this would load mytest.bxt into a new test context
1882
+ # named &quot;My Test&quot;, and within that context ${my_var}
1883
+ # would expand to 1.</pre>
1900
1884
 
1901
1885
 
1902
1886
 
1903
1887
 
1904
1888
  <div class="method-source-code" id="test-source">
1905
1889
  <pre><span class="ruby-comment"># File lib/bauxite/actions/test.rb, line 42</span>
1906
- <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-operator">*</span><span class="ruby-identifier">vars</span>)
1907
- <span class="ruby-identifier">delayed</span> = <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1908
- <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span>
1909
- <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span>
1910
- <span class="ruby-keyword">begin</span>
1911
- <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
1912
- <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;ERROR&#39;</span>
1913
- <span class="ruby-identifier">error</span> = <span class="ruby-keyword">nil</span>
1914
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</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>
1915
- <span class="ruby-identifier">delayed</span>.<span class="ruby-identifier">call</span>
1916
- <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;OK&#39;</span>
1917
- <span class="ruby-keyword">end</span>
1918
- <span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1919
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>)
1920
- <span class="ruby-identifier">error</span> = <span class="ruby-identifier">e</span>
1921
- <span class="ruby-keyword">ensure</span>
1922
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">tests</span> <span class="ruby-operator">&lt;&lt;</span> {
1923
- <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>,
1924
- <span class="ruby-value">:status</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">status</span>,
1925
- <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>,
1926
- <span class="ruby-value">:error</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error</span>
1927
- }
1928
- <span class="ruby-keyword">end</span>
1929
- <span class="ruby-keyword">end</span>
1890
+ <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-operator">*</span><span class="ruby-identifier">vars</span>)
1891
+ <span class="ruby-identifier">delayed</span> = <span class="ruby-identifier">load</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1892
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span>
1893
+ <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span>
1894
+ <span class="ruby-keyword">begin</span>
1895
+ <span class="ruby-identifier">t</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>
1896
+ <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;ERROR&#39;</span>
1897
+ <span class="ruby-identifier">error</span> = <span class="ruby-keyword">nil</span>
1898
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">with_vars</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>
1899
+ <span class="ruby-identifier">delayed</span>.<span class="ruby-identifier">call</span>
1900
+ <span class="ruby-identifier">status</span> = <span class="ruby-string">&#39;OK&#39;</span>
1901
+ <span class="ruby-keyword">end</span>
1902
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">StandardError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
1903
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">print_error</span>(<span class="ruby-identifier">e</span>)
1904
+ <span class="ruby-identifier">error</span> = <span class="ruby-identifier">e</span>
1905
+ <span class="ruby-keyword">ensure</span>
1906
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">tests</span> <span class="ruby-operator">&lt;&lt;</span> {
1907
+ <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>,
1908
+ <span class="ruby-value">:status</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">status</span>,
1909
+ <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>,
1910
+ <span class="ruby-value">:error</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error</span>
1911
+ }
1912
+ <span class="ruby-keyword">end</span>
1913
+ <span class="ruby-keyword">end</span>
1930
1914
  <span class="ruby-keyword">end</span></pre>
1931
1915
  </div>
1932
1916
 
@@ -1980,10 +1964,10 @@ href="Context.html#method-i-with_vars">Bauxite::Context#with_vars</a>).</p>
1980
1964
 
1981
1965
  <div class="method-source-code" id="tryload-source">
1982
1966
  <pre><span class="ruby-comment"># File lib/bauxite/actions/tryload.rb, line 46</span>
1983
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">tryload</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1984
- <span class="ruby-identifier">_load_file_action</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1985
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_file</span>(<span class="ruby-identifier">f</span>)
1986
- <span class="ruby-keyword">end</span>
1967
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">tryload</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>)
1968
+ <span class="ruby-identifier">_load_file_action</span>(<span class="ruby-identifier">file</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">vars</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span>
1969
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">exec_file</span>(<span class="ruby-identifier">f</span>)
1970
+ <span class="ruby-keyword">end</span>
1987
1971
  <span class="ruby-keyword">end</span></pre>
1988
1972
  </div>
1989
1973
 
@@ -2021,12 +2005,12 @@ href="Context.html#method-i-with_vars">Bauxite::Context#with_vars</a>).</p>
2021
2005
 
2022
2006
  <div class="method-source-code" id="wait-source">
2023
2007
  <pre><span class="ruby-comment"># File lib/bauxite/actions/wait.rb, line 31</span>
2024
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">seconds</span>)
2025
- <span class="ruby-identifier">seconds</span> = <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">to_i</span>
2026
- <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
2027
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-identifier">seconds</span><span class="ruby-operator">-</span><span class="ruby-identifier">i</span>)
2028
- <span class="ruby-identifier">sleep</span>(<span class="ruby-value">1.0</span>)
2029
- <span class="ruby-keyword">end</span>
2008
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">wait</span>(<span class="ruby-identifier">seconds</span>)
2009
+ <span class="ruby-identifier">seconds</span> = <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">to_i</span>
2010
+ <span class="ruby-identifier">seconds</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
2011
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">progress</span>(<span class="ruby-identifier">seconds</span><span class="ruby-operator">-</span><span class="ruby-identifier">i</span>)
2012
+ <span class="ruby-identifier">sleep</span>(<span class="ruby-value">1.0</span>)
2013
+ <span class="ruby-keyword">end</span>
2030
2014
  <span class="ruby-keyword">end</span></pre>
2031
2015
  </div>
2032
2016
 
@@ -2058,25 +2042,24 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
2058
2042
 
2059
2043
  <p>For example:</p>
2060
2044
 
2061
- <pre class="ruby"><span class="ruby-comment"># assuming &lt;input type=&quot;text&quot; name=&quot;username&quot; /&gt;</span>
2062
- <span class="ruby-identifier">write</span> <span class="ruby-identifier">name</span>=<span class="ruby-identifier">username</span> <span class="ruby-string">&quot;John&quot;</span>
2063
- <span class="ruby-comment"># =&gt; this would type the word &#39;John&#39; in the username textbox</span>
2064
- </pre>
2045
+ <pre># assuming &lt;input type=&quot;text&quot; name=&quot;username&quot; /&gt;
2046
+ write name=username &quot;John&quot;
2047
+ # =&gt; this would type the word &#39;John&#39; in the username textbox</pre>
2065
2048
 
2066
2049
 
2067
2050
 
2068
2051
 
2069
2052
  <div class="method-source-code" id="write-source">
2070
2053
  <pre><span class="ruby-comment"># File lib/bauxite/actions/write.rb, line 34</span>
2071
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
2072
- <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
2073
- <span class="ruby-keyword">begin</span>
2074
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">clear</span>
2075
- <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">UnknownError</span> <span class="ruby-comment"># user-editable...</span>
2076
- <span class="ruby-comment"># do nothing (if this should fail, it will in the line below)</span>
2077
- <span class="ruby-keyword">end</span>
2078
- <span class="ruby-identifier">e</span>.<span class="ruby-identifier">send_keys</span>(<span class="ruby-identifier">text</span>)
2079
- <span class="ruby-keyword">end</span>
2054
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">selector</span>, <span class="ruby-identifier">text</span>)
2055
+ <span class="ruby-ivar">@ctx</span>.<span class="ruby-identifier">find</span>(<span class="ruby-identifier">selector</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
2056
+ <span class="ruby-keyword">begin</span>
2057
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">clear</span>
2058
+ <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Selenium</span><span class="ruby-operator">::</span><span class="ruby-constant">WebDriver</span><span class="ruby-operator">::</span><span class="ruby-constant">Error</span><span class="ruby-operator">::</span><span class="ruby-constant">UnknownError</span> <span class="ruby-comment"># user-editable...
2059
+ <span class="ruby-comment"># do nothing (if this should fail, it will in the line below)
2060
+ <span class="ruby-keyword">end</span>
2061
+ <span class="ruby-identifier">e</span>.<span class="ruby-identifier">send_keys</span>(<span class="ruby-identifier">text</span>)
2062
+ <span class="ruby-keyword">end</span>
2080
2063
  <span class="ruby-keyword">end</span></pre>
2081
2064
  </div>
2082
2065
 
@@ -2096,7 +2079,7 @@ href="Context.html#method-i-expand">Bauxite::Context#expand</a>).</p>
2096
2079
 
2097
2080
  <footer id="validator-badges" role="contentinfo">
2098
2081
  <p><a href="http://validator.w3.org/check/referer">Validate</a>
2099
- <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.2.
2100
- <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
2082
+ <p>Generated by <a href="http://docs.seattlerb.org/rdoc/">RDoc</a> 4.2.0.
2083
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
2101
2084
  </footer>
2102
2085