bauxite 0.4.2 → 0.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -0
  3. data/Rakefile +3 -0
  4. data/doc/Bauxite.html +1 -1
  5. data/doc/Bauxite/Action.html +2 -1
  6. data/doc/Bauxite/ActionModule.html +1 -1
  7. data/doc/Bauxite/Application.html +9 -1
  8. data/doc/Bauxite/Context.html +156 -27
  9. data/doc/Bauxite/Errors.html +1 -1
  10. data/doc/Bauxite/Errors/AssertionError.html +1 -1
  11. data/doc/Bauxite/Errors/FileNotFoundError.html +1 -1
  12. data/doc/Bauxite/Errors/FormatError.html +1 -1
  13. data/doc/Bauxite/Loggers.html +1 -1
  14. data/doc/Bauxite/Loggers/CompositeLogger.html +1 -1
  15. data/doc/Bauxite/Loggers/EchoLogger.html +1 -1
  16. data/doc/Bauxite/Loggers/FileLogger.html +1 -1
  17. data/doc/Bauxite/Loggers/NullLogger.html +1 -1
  18. data/doc/Bauxite/Loggers/TerminalLogger.html +1 -1
  19. data/doc/Bauxite/Loggers/XtermLogger.html +1 -1
  20. data/doc/Bauxite/Parser.html +1 -1
  21. data/doc/Bauxite/ParserModule.html +1 -1
  22. data/doc/Bauxite/Selector.html +52 -52
  23. data/doc/Bauxite/SelectorModule.html +12 -7
  24. data/doc/README_md.html +5 -1
  25. data/doc/created.rid +46 -46
  26. data/doc/index.html +5 -1
  27. data/doc/js/jquery.js +4 -18
  28. data/doc/js/search_index.js +1 -1
  29. data/doc/table_of_contents.html +50 -43
  30. data/lib/bauxite.rb +1 -1
  31. data/lib/bauxite/actions/open.rb +1 -0
  32. data/lib/bauxite/application.rb +9 -0
  33. data/lib/bauxite/core/context.rb +71 -3
  34. data/lib/bauxite/core/selector.rb +8 -3
  35. data/lib/bauxite/selectors/frame.rb +7 -7
  36. data/lib/bauxite/selectors/{default.rb → sid.rb} +2 -2
  37. data/lib/bauxite/selectors/smart.rb +2 -3
  38. data/test/default_selector.bxt.manual +7 -0
  39. data/test/default_selector/page.html +11 -0
  40. data/test/default_selector_var.bxt +1 -0
  41. metadata +10 -4
@@ -48,13 +48,13 @@ class Bauxite::Selector
48
48
  def frame(arg, &block)
49
49
  delimiter = arg[0]
50
50
  items = arg[1..-1].split(delimiter, 2)
51
- frame = find(items[0])
52
-
53
- begin
54
- @ctx.driver.switch_to.frame frame
55
- find(items[1], &block)
56
- ensure
57
- @ctx.driver.switch_to.default_content
51
+ find(items[0]) do |f|
52
+ begin
53
+ @ctx.driver.switch_to.frame f
54
+ find(items[1], &block)
55
+ ensure
56
+ @ctx.driver.switch_to.default_content
57
+ end
58
58
  end
59
59
  end
60
60
  end
@@ -28,11 +28,11 @@ class Bauxite::Selector
28
28
  #
29
29
  # For example:
30
30
  # # assuming <div id="strange_uuid_like_stuff_myDiv">foo</div>
31
- # assert myDiv "foo"
31
+ # assert sid=myDiv "foo"
32
32
  # # => matches the element above.
33
33
  #
34
34
  # :category: Selector Methods
35
- def default(arg, &block)
35
+ def sid(arg, &block)
36
36
  selenium_find(:css, "[id$='#{arg.gsub("'", "\\'")}']", &block)
37
37
  end
38
38
  end
@@ -45,7 +45,7 @@ class Bauxite::Selector
45
45
  # :category: Selector Methods
46
46
  def smart(arg, &block)
47
47
  b = lambda { |e| e }
48
- target = _smart_try_find { default(arg, &b) }
48
+ target = _smart_try_find { sid(arg, &b) }
49
49
  target ||= _smart_try_find { selenium_find(:name, arg) }
50
50
  target ||= _smart_try_find { selenium_find(:class_name, arg) }
51
51
  target ||= _smart_try_find { attr("id*:"+arg, &b) }
@@ -66,8 +66,7 @@ class Bauxite::Selector
66
66
 
67
67
  private
68
68
  def _smart_try_find()
69
- wait = Selenium::WebDriver::Wait.new(:timeout => 0.01)
70
- wait.until { yield }
69
+ @ctx.with_driver_timeout(0) { yield }
71
70
  rescue StandardError => e
72
71
  nil
73
72
  end
@@ -0,0 +1,7 @@
1
+ open "file://${__DIR__}/default_selector/page.html"
2
+
3
+ assert "#username" "jdoe"
4
+ assert ".password" "hello world!"
5
+ assert "[data=pet]" "velociraptor"
6
+ assert ".form textarea" "Hi! I'm John"
7
+ assert "textarea" "Notes go here."
@@ -0,0 +1,11 @@
1
+ <html>
2
+ <body>
3
+ <textarea>Notes go here.</textarea>
4
+ <div class="form">
5
+ <input id="username" value="jdoe"/>
6
+ <input class="password" value="hello world!" />
7
+ <input data="pet" value="velociraptor" />
8
+ <textarea>Hi! I'm John</textarea>
9
+ </div>
10
+ </body>
11
+ </html>
@@ -0,0 +1 @@
1
+ load "default_selector.bxt.manual" "__SELECTOR__=css"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bauxite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patricio Zavolinsky
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-28 00:00:00.000000000 Z
11
+ date: 2014-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -38,7 +38,10 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.1'
41
- description:
41
+ description: The idea behind this project was to create a tool that allows non-developers
42
+ to write web tests in a human-readable language. Another major requirement is to
43
+ be able to easily extend the test language to create functional abstractions over
44
+ technical details.
42
45
  email: pzavolinsky at yahoo dot com dot ar
43
46
  executables:
44
47
  - bauxite
@@ -154,11 +157,14 @@ files:
154
157
  - lib/bauxite/parsers/default.rb
155
158
  - lib/bauxite/parsers/html.rb
156
159
  - lib/bauxite/selectors/attr.rb
157
- - lib/bauxite/selectors/default.rb
158
160
  - lib/bauxite/selectors/frame.rb
161
+ - lib/bauxite/selectors/sid.rb
159
162
  - lib/bauxite/selectors/smart.rb
160
163
  - test/alias.bxt
161
164
  - test/assertv.bxt
165
+ - test/default_selector.bxt.manual
166
+ - test/default_selector/page.html
167
+ - test/default_selector_var.bxt
162
168
  - test/delay.bxt
163
169
  - test/delay/page.html
164
170
  - test/exec.bxt