sapphire 0.6.7 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (124) hide show
  1. data/lib/sapphire.rb +3 -2
  2. data/lib/sapphire/Adapters/Selenium/RubySeleniumWebDriver.rb +43 -27
  3. data/lib/sapphire/Configuration/AppConfig.rb +1 -1
  4. data/lib/sapphire/DSL.rb +6 -1
  5. data/lib/sapphire/DSL/Browser/ExecuteAgainstControl.rb +6 -20
  6. data/lib/sapphire/DSL/Browser/Fluff/Be.rb +10 -0
  7. data/lib/sapphire/DSL/Browser/Fluff/By.rb +2 -2
  8. data/lib/sapphire/DSL/Browser/Fluff/Have.rb +10 -0
  9. data/lib/sapphire/DSL/Browser/Fluff/To.rb +2 -2
  10. data/lib/sapphire/DSL/Browser/For.rb +9 -10
  11. data/lib/sapphire/DSL/Browser/Nouns/Browser.rb +2 -2
  12. data/lib/sapphire/DSL/Browser/Nouns/Day.rb +42 -24
  13. data/lib/sapphire/DSL/Browser/Nouns/Enter.rb +1 -1
  14. data/lib/sapphire/DSL/Browser/Nouns/Month.rb +42 -24
  15. data/lib/sapphire/DSL/Browser/Nouns/Popup.rb +2 -2
  16. data/lib/sapphire/DSL/Browser/Nouns/Second.rb +42 -0
  17. data/lib/sapphire/DSL/Browser/Should.rb +1 -46
  18. data/lib/sapphire/DSL/Browser/Verbs/Accept.rb +1 -2
  19. data/lib/sapphire/DSL/Browser/Verbs/Check.rb +0 -1
  20. data/lib/sapphire/DSL/Browser/Verbs/Click.rb +0 -1
  21. data/lib/sapphire/DSL/Browser/Verbs/Compare.rb +5 -5
  22. data/lib/sapphire/DSL/Browser/Verbs/Complete.rb +2 -2
  23. data/lib/sapphire/DSL/Browser/Verbs/Disable.rb +1 -1
  24. data/lib/sapphire/DSL/Browser/Verbs/Exists.rb +6 -11
  25. data/lib/sapphire/DSL/Browser/Verbs/{Close.rb → Exit.rb} +0 -0
  26. data/lib/sapphire/DSL/Browser/Verbs/Has.rb +9 -0
  27. data/lib/sapphire/DSL/Browser/Verbs/MouseOver.rb +0 -1
  28. data/lib/sapphire/DSL/Browser/Verbs/Navigate.rb +1 -2
  29. data/lib/sapphire/DSL/Browser/Verbs/On.rb +19 -0
  30. data/lib/sapphire/DSL/Browser/Verbs/Press.rb +1 -1
  31. data/lib/sapphire/DSL/Browser/Verbs/Reload.rb +1 -1
  32. data/lib/sapphire/DSL/Browser/Verbs/Remove.rb +22 -0
  33. data/lib/sapphire/DSL/Browser/Verbs/Set.rb +1 -1
  34. data/lib/sapphire/DSL/Browser/Verbs/Start.rb +14 -16
  35. data/lib/sapphire/DSL/Browser/Verbs/Uncheck.rb +0 -1
  36. data/lib/sapphire/DSL/Comparisons/CheckedComparison.rb +17 -0
  37. data/lib/sapphire/DSL/Comparisons/Comparison.rb +34 -0
  38. data/lib/sapphire/DSL/Comparisons/ContainsComparison.rb +17 -0
  39. data/lib/sapphire/DSL/Comparisons/DifferComparison.rb +17 -0
  40. data/lib/sapphire/DSL/Comparisons/EqualsComparison.rb +16 -0
  41. data/lib/sapphire/DSL/Comparisons/NotComparison.rb +21 -0
  42. data/lib/sapphire/DSL/Comparisons/SelectedComparison.rb +17 -0
  43. data/lib/sapphire/DSL/Comparisons/StartsWithComparison.rb +17 -0
  44. data/lib/sapphire/DSL/Comparisons/VisibleComparison.rb +17 -0
  45. data/lib/sapphire/DSL/Configuration/Use.rb +3 -0
  46. data/lib/sapphire/DSL/Data/GetPageField.rb +4 -8
  47. data/lib/sapphire/DSL/Evaluations/Evaluation.rb +46 -0
  48. data/lib/sapphire/DSL/Evaluations/FieldNotDefinedEvaluation.rb +21 -0
  49. data/lib/sapphire/DSL/Evaluations/FieldNotFoundEvaluation.rb +21 -0
  50. data/lib/sapphire/DSL/Evaluators/AltText.rb +17 -0
  51. data/lib/sapphire/DSL/Evaluators/Checked.rb +17 -0
  52. data/lib/sapphire/DSL/Evaluators/Contain.rb +10 -0
  53. data/lib/sapphire/DSL/Evaluators/Count.rb +9 -0
  54. data/lib/sapphire/DSL/Evaluators/Differ.rb +10 -0
  55. data/lib/sapphire/DSL/Evaluators/Evaluator.rb +22 -0
  56. data/lib/sapphire/DSL/Evaluators/Exist.rb +9 -0
  57. data/lib/sapphire/DSL/Evaluators/In.rb +10 -0
  58. data/lib/sapphire/DSL/Evaluators/Selected.rb +10 -0
  59. data/lib/sapphire/DSL/Evaluators/Show.rb +10 -0
  60. data/lib/sapphire/DSL/Evaluators/Source.rb +17 -0
  61. data/lib/sapphire/DSL/Evaluators/Transition.rb +10 -0
  62. data/lib/sapphire/DSL/Evaluators/Validate.rb +8 -0
  63. data/lib/sapphire/DSL/Events/Causes.rb +3 -0
  64. data/lib/sapphire/DSL/Events/Event.rb +19 -0
  65. data/lib/sapphire/DSL/Events/Expect.rb +19 -0
  66. data/lib/sapphire/DSL/Scenarios/then.rb +1 -1
  67. data/lib/sapphire/DSL/Scenarios/when.rb +1 -1
  68. data/lib/sapphire/DSL/TestPlans/FileHandler.rb +7 -2
  69. data/lib/sapphire/DSL/TestPlans/PathHandler.rb +2 -1
  70. data/lib/sapphire/DataAbstractions/NonQuery.rb +2 -1
  71. data/lib/sapphire/DataAbstractions/Query.rb +2 -1
  72. data/lib/sapphire/Extensions.rb +1 -0
  73. data/lib/sapphire/{DSL/Browser/Extensions → Extensions}/Class.rb +10 -0
  74. data/lib/sapphire/Extensions/Hash.rb +85 -0
  75. data/lib/sapphire/{DSL/Browser/Extensions → Extensions}/Numeric.rb +6 -6
  76. data/lib/sapphire/Extensions/Object.rb +9 -0
  77. data/lib/sapphire/{DSL/Browser/Extensions → Extensions}/String.rb +4 -0
  78. data/lib/sapphire/Extensions/Symbol.rb +105 -0
  79. data/lib/sapphire/Sessions/Parameter.rb +36 -0
  80. data/lib/sapphire/Sessions/Storage.rb +17 -0
  81. data/lib/sapphire/UI/Functions.rb +2 -1
  82. data/lib/sapphire/UI/ProcessBuilder.rb +174 -0
  83. data/lib/sapphire/Virtualization.rb +1 -1
  84. data/lib/sapphire/WebAbstractions/Browsers/Chrome.rb +22 -21
  85. data/lib/sapphire/WebAbstractions/Browsers/FireFox.rb +24 -22
  86. data/lib/sapphire/WebAbstractions/Browsers/InternetExplorer.rb +22 -21
  87. data/lib/sapphire/WebAbstractions/Controls/AlertBox.rb +21 -0
  88. data/lib/sapphire/WebAbstractions/Controls/Base/Control.rb +32 -14
  89. data/lib/sapphire/WebAbstractions/Controls/Base/Page.rb +74 -65
  90. data/lib/sapphire/WebAbstractions/Controls/CheckBox.rb +29 -28
  91. data/lib/sapphire/WebAbstractions/Controls/DropDown.rb +59 -26
  92. data/lib/sapphire/WebAbstractions/Controls/Image.rb +10 -0
  93. data/lib/sapphire/WebAbstractions/Controls/List.rb +45 -4
  94. data/lib/sapphire/WebAbstractions/Controls/RadioButton.rb +29 -18
  95. data/lib/sapphire/WebAbstractions/Controls/TextBox.rb +9 -8
  96. data/lib/sapphire/WebAbstractions/Controls/Title.rb +1 -1
  97. data/lib/sapphire/version.rb +1 -1
  98. metadata +55 -39
  99. data/lib/sapphire/Configuration/SapphireConfig.rb +0 -33
  100. data/lib/sapphire/DSL/Browser/Extensions/Hash.rb +0 -11
  101. data/lib/sapphire/DSL/Browser/Extensions/Symbol.rb +0 -37
  102. data/lib/sapphire/DSL/Browser/Not.rb +0 -39
  103. data/lib/sapphire/DSL/Browser/Nouns/AlertBox.rb +0 -15
  104. data/lib/sapphire/DSL/Browser/Verbs/Attempt.rb +0 -14
  105. data/lib/sapphire/DSL/Browser/Verbs/Contain.rb +0 -25
  106. data/lib/sapphire/DSL/Browser/Verbs/Count.rb +0 -24
  107. data/lib/sapphire/DSL/Browser/Verbs/Differ.rb +0 -19
  108. data/lib/sapphire/DSL/Browser/Verbs/Error.rb +0 -25
  109. data/lib/sapphire/DSL/Browser/Verbs/Hide.rb +0 -25
  110. data/lib/sapphire/DSL/Browser/Verbs/Show.rb +0 -25
  111. data/lib/sapphire/DSL/Browser/Verbs/Transition.rb +0 -25
  112. data/lib/sapphire/DSL/Data/Exist.rb +0 -26
  113. data/lib/sapphire/DSL/Data/Validate.rb +0 -25
  114. data/lib/sapphire/Strategies.rb +0 -2
  115. data/lib/sapphire/Strategies/ClassStrategy.rb +0 -13
  116. data/lib/sapphire/Strategies/ContainsEvaluation.rb +0 -16
  117. data/lib/sapphire/Strategies/ContainsNullModifier.rb +0 -34
  118. data/lib/sapphire/Strategies/DefaultStrategy.rb +0 -17
  119. data/lib/sapphire/Strategies/Evaluation.rb +0 -16
  120. data/lib/sapphire/Strategies/HashStrategy.rb +0 -72
  121. data/lib/sapphire/Strategies/NullModifier.rb +0 -34
  122. data/lib/sapphire/Strategies/Strategy.rb +0 -11
  123. data/lib/sapphire/Strategies/SymbolStrategy.rb +0 -59
  124. data/lib/sapphire/WebAbstractions/Controls/TableCell.rb +0 -10
@@ -1,17 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class DefaultStrategy < Strategy
5
- def Show(item, modifier)
6
- evaluation, @page = $browser.ShouldNavigateTo item
7
- @page.Init
8
- {:page => @page, :value => evaluation }
9
- end
10
-
11
- def Exists(item)
12
- Evaluation.new(item, nil)
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,16 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class Evaluation
5
-
6
- attr_reader :left
7
- attr_reader :right
8
-
9
- def initialize(left, right)
10
- @left = left
11
- @right = right
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,72 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class HashStrategy < Strategy
5
- def Show(item, modifier)
6
- ExecuteHashAgainstControl(item, @page) do |control, arg|
7
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
8
- begin
9
- evaluation = wait.until { x = control
10
- val = x.Equals(arg)
11
- if (val.left == val.right)
12
- val
13
- end
14
- }
15
- rescue
16
- return Evaluation.new(control.Text, arg)
17
- end
18
-
19
- return evaluation
20
- end
21
- end
22
-
23
- def Contain(item, modifier)
24
- ExecuteHashAgainstControl(item, @page) do |control, arg|
25
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
26
- begin
27
- evaluation = wait.until { x = control
28
- val = x.Contain(arg)
29
- if (val.left.include? val.right)
30
- return val
31
- end
32
- }
33
- rescue
34
- return ContainsEvaluation.new(control.Text, arg)
35
- end
36
-
37
- return evaluation
38
- end
39
- end
40
-
41
- def Count(item, modifier)
42
- ExecuteHashAgainstControl(item, @page) do |control, arg|
43
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
44
- count = 0
45
- begin
46
- evaluation = wait.until { x = control
47
- count = x.Count
48
- if x.Count == arg
49
- return Evaluation.new(count, arg)
50
- end
51
- }
52
- rescue
53
- return Evaluation.new(count, arg)
54
- end
55
-
56
- return evaluation
57
- end
58
- end
59
-
60
- def Validate(hash)
61
- Evaluation.new(hash.keys.first.to_s, hash[hash.keys.first].to_s)
62
- end
63
-
64
- def Error(item)
65
- ExecuteHashAgainstControl(item, @page) do |control, arg|
66
- return control.Equals(arg)
67
- end
68
- end
69
- end
70
- end
71
- end
72
- end
@@ -1,34 +0,0 @@
1
- class NullModifier
2
- def initialize(item)
3
- @item = item
4
- @item.ModifyWith self
5
- end
6
-
7
- def ModifyWith(item)
8
- @modifier = item
9
- end
10
-
11
- def Modify(item)
12
- return @modifier.Modify(item) if @modifier != nil
13
- item if @modifier == nil
14
- end
15
-
16
- def Evaluate(evaluation)
17
- return @modifier.Evaluate(evaluation) if @modifier != nil
18
-
19
- if(evaluation.left != evaluation.right)
20
- messages = []
21
-
22
- messages << "expected: (nil)" if evaluation.right == nil
23
- messages << "expected: " + evaluation.right.to_s if evaluation.right != nil
24
- messages << "got: (nil)" if evaluation.left == nil
25
- messages << "got: " + evaluation.left.to_s if evaluation.left != nil
26
-
27
- raise ExpectationException.new(messages)
28
- end
29
- end
30
-
31
- def execute
32
- @item.execute
33
- end
34
- end
@@ -1,11 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class Strategy
5
- def initialize(page)
6
- @page = page
7
- end
8
- end
9
- end
10
- end
11
- end
@@ -1,59 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class SymbolStrategy < Strategy
5
- def Show(item, modifier)
6
- @page.fields.each do |field|
7
- field.keys.each do |field_key|
8
- if(field_key == item)
9
- begin
10
- x = field[field_key].Find
11
- if(x)
12
- begin
13
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
14
- result = wait.until { y = modifier.Modify(x.displayed?)
15
- y unless y == false
16
- }
17
- return Evaluation.new(modifier.Modify(x.displayed?), modifier.Modify(true))
18
- rescue
19
- return Evaluation.new(true, "An error occurred.")
20
- end
21
- end
22
- rescue
23
- return Evaluation.new(true, "An error occurred.")
24
- end
25
- end
26
- end
27
- end
28
-
29
- raise "cannot find control matching " + item.to_s + " for page " + @page.to_s
30
- end
31
-
32
- def Hide(item, modifier)
33
- @page.fields.each do |field|
34
- field.keys.each do |field_key|
35
- if(field_key == item)
36
- begin
37
- wait = Selenium::WebDriver::Wait.new(:timeout => 5)
38
- element = wait.until { x = field[field_key].Find
39
- x and modifier.Modify(!x.displayed?)
40
- }
41
- if(element)
42
- return Evaluation.new(modifier.Modify(element.displayed?), modifier.Modify(true))
43
- end
44
- rescue
45
- return Evaluation.new(true, true)
46
- end
47
- end
48
- end
49
- end
50
- raise "cannot find control matching " + item.to_s + " for page " + @page.to_s
51
- end
52
-
53
- def Validate(hash)
54
- GetPageField(hash[hash.keys.first]).Equals(hash.keys.first.to_s)
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,10 +0,0 @@
1
- module Sapphire
2
- module WebAbstractions
3
- class TableCell < Control
4
- def Text
5
- text = self.Find
6
- text.value
7
- end
8
- end
9
- end
10
- end