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,33 +0,0 @@
1
- module Sapphire
2
- module Configuration
3
- class SapphireConfig
4
-
5
- attr_reader :wait_time
6
-
7
- def initialize
8
- @@config = {}
9
-
10
- Add Symbol => SymbolStrategy
11
- Add Class => ClassStrategy
12
- Add Hash => HashStrategy
13
- end
14
-
15
- def self.Current
16
- @@instance ||= SapphireConfig.new
17
- end
18
-
19
- def Add(hash)
20
- @@config = @@config.merge(hash)
21
- end
22
-
23
- def GetBy(symbol)
24
- if(@@config.has_key? symbol)
25
- return @@config[symbol]
26
- end
27
-
28
- return DefaultStrategy
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,11 +0,0 @@
1
- class Hash < Object
2
-
3
- def With(options = {})
4
- @page = options.fetch(:page) if options.has_key? :page
5
- end
6
-
7
- def Set(hash)
8
- hash.keys.first.With(:page => @page)
9
- hash.keys.first.Set(hash)
10
- end
11
- end
@@ -1,37 +0,0 @@
1
- class Symbol
2
-
3
- def With(options = {})
4
- @page = options.fetch(:page) if options.has_key? :page
5
- end
6
-
7
- def Check
8
- ExecuteAgainstControl(self, @page) do |control, arg|
9
- control.Check true
10
- end
11
- end
12
-
13
- def Click
14
- ExecuteAgainstControl(self, @page) do |control, arg|
15
- control.Click
16
- end
17
- end
18
-
19
- def MouseOver
20
- ExecuteAgainstControl(self, @page) do |control, arg|
21
- control.MouseOver
22
- end
23
- end
24
-
25
- def Uncheck
26
- ExecuteAgainstControl(self, @page) do |control, arg|
27
- control.Check false
28
- end
29
- end
30
-
31
- def Set(hash)
32
- ExecuteHashAgainstControl(hash, @page) do |control, arg|
33
- control.Set arg
34
- end
35
- end
36
-
37
- end
@@ -1,39 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Not(item)
5
- Not.new(item)
6
- end
7
-
8
- class Not
9
-
10
- def initialize(item)
11
- @item = item
12
- @item.ModifyWith self
13
- end
14
-
15
- def Modify(item)
16
- return @modifier.Modify(!item) if @modifier != nil
17
- !item
18
- end
19
-
20
- def Evaluate(evaluation)
21
- if(evaluation.left == evaluation.right)
22
- messages = []
23
-
24
- messages << "expected NOT: (nil)" if evaluation.right == nil
25
- messages << "expected NOT: " + evaluation.right.to_s if evaluation.right != nil
26
- messages << "got: (nil)" if evaluation.left == nil
27
- messages << "got: " + evaluation.left.to_s if evaluation.left != nil
28
-
29
- raise ExpectationException.new(messages)
30
- end
31
- end
32
-
33
- def execute
34
- @item.execute
35
- end
36
- end
37
- end
38
- end
39
- end
@@ -1,15 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- class AlertBox
5
- def Accept
6
- $browser.AcceptAlert
7
- end
8
-
9
- def Set(text)
10
- $browser.SetAlert(text)
11
- end
12
- end
13
- end
14
- end
15
- end
@@ -1,14 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Attempt(page)
5
- if(page.is_a? Class)
6
- temp = page.new
7
- @page = temp.Attempt
8
- else
9
- @page = page.Attempt
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Contain(item)
5
- ContainsNullModifier.new(Contain.new(item, @page))
6
- end
7
-
8
- class Contain
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Contain(@item, @modifier), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,24 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Count(item)
5
- NullModifier.new(Count.new(item, @page))
6
- end
7
-
8
- class Count
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Count(@item, @modifier), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,19 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Differ(arg)
5
- return Differ.new(arg)
6
- end
7
-
8
- class Differ
9
- def initialize(arg)
10
- @arg = arg
11
- end
12
-
13
- def execute
14
- return Evaluation.new(true, @arg.Differ) #args[0] is the value that should be the difference
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Error(hash)
5
- NullModifier.new(Error.new(hash, @page))
6
- end
7
-
8
- class Error
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Error(@item), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Hide(args)
5
- NullModifier.new(Hide.new(args, @page))
6
- end
7
-
8
- class Hide
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Hide(@item, @modifier), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
- def Show(item)
5
- NullModifier.new(Show.new(item, @page))
6
- end
7
-
8
- class Show
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Show(@item, @modifier), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Browser
4
-
5
- def Transition(url)
6
- NullModifier.new(Transition.new(url))
7
- end
8
-
9
- class Transition
10
- def initialize(item)
11
- @item = item
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- @modifier.Modify($browser.ShouldTransitionTo(@item))
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,26 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Data
4
- def Exist(value)
5
- Not(Exist.new(value, @page))
6
- end
7
-
8
- class Exist
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Exists(@item), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
26
-
@@ -1,25 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Data
4
- def Validate(hash)
5
- NullModifier.new(Validate.new(hash, @page))
6
- end
7
-
8
- class Validate
9
- def initialize(item, page)
10
- @item = item
11
- @page = page
12
- end
13
-
14
- def ModifyWith(item)
15
- @modifier = item
16
- end
17
-
18
- def execute
19
- return { :value => SapphireConfig.Current.GetBy(@item.class).new(@page).Validate(@item), :modifier => @modifier }
20
- end
21
- end
22
- end
23
- end
24
- end
25
-
@@ -1,2 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) +'/Strategies/Strategy.rb', __FILE__)
2
- Dir[File.dirname(__FILE__) + '/Strategies/*.rb'].each {|file| require file }
@@ -1,13 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class ClassStrategy < Strategy
5
- def Show(item, modifier)
6
- evaluation, @page = $browser.ShouldNavigateTo item
7
- @page.Init
8
- {:page => @page, :value => evaluation }
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,16 +0,0 @@
1
- module Sapphire
2
- module DSL
3
- module Strategies
4
- class ContainsEvaluation
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,34 +0,0 @@
1
- class ContainsNullModifier
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.include? evaluation.right)
20
- messages = []
21
-
22
- messages << "expected to contain: (nil)" if evaluation.right == nil
23
- messages << "expected to contain: " + 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