sapphire 0.7.26 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/sapphire.rb +51 -40
- data/lib/sapphire/Adapters/Selenium/RubySeleniumWebDriver.rb +24 -68
- data/lib/sapphire/DSL.rb +18 -16
- data/lib/sapphire/DSL/Browser/Create.rb +10 -10
- data/lib/sapphire/DSL/Browser/ExecuteAgainstControl.rb +20 -20
- data/lib/sapphire/DSL/Browser/Fluff/By.rb +10 -10
- data/lib/sapphire/DSL/Browser/Fluff/To.rb +10 -10
- data/lib/sapphire/DSL/Browser/Fluff/With.rb +10 -10
- data/lib/sapphire/DSL/Browser/Nouns/Browser.rb +17 -17
- data/lib/sapphire/DSL/Browser/Nouns/Enter.rb +10 -10
- data/lib/sapphire/DSL/Browser/Tracker.rb +15 -15
- data/lib/sapphire/DSL/Browser/Verbs/Accept.rb +8 -8
- data/lib/sapphire/DSL/Browser/Verbs/Check.rb +10 -10
- data/lib/sapphire/DSL/Browser/Verbs/Clear.rb +8 -8
- data/lib/sapphire/DSL/Browser/Verbs/Click.rb +10 -10
- data/lib/sapphire/DSL/Browser/Verbs/Compare.rb +18 -18
- data/lib/sapphire/DSL/Browser/Verbs/Complete.rb +13 -13
- data/lib/sapphire/DSL/Browser/Verbs/Exists.rb +16 -16
- data/lib/sapphire/DSL/Browser/Verbs/Exit.rb +11 -11
- data/lib/sapphire/DSL/Browser/Verbs/MouseOver.rb +10 -10
- data/lib/sapphire/DSL/Browser/Verbs/Navigate.rb +10 -10
- data/lib/sapphire/DSL/Browser/Verbs/Press.rb +8 -8
- data/lib/sapphire/DSL/Browser/Verbs/Reload.rb +11 -11
- data/lib/sapphire/DSL/Browser/Verbs/Set.rb +10 -10
- data/lib/sapphire/DSL/Browser/Verbs/Uncheck.rb +10 -10
- data/lib/sapphire/DSL/Comparisons/CheckedComparison.rb +17 -17
- data/lib/sapphire/DSL/Comparisons/Comparison.rb +50 -50
- data/lib/sapphire/DSL/Comparisons/ContainsComparison.rb +17 -17
- data/lib/sapphire/DSL/Comparisons/DifferComparison.rb +17 -17
- data/lib/sapphire/DSL/Comparisons/EqualsComparison.rb +16 -16
- data/lib/sapphire/DSL/Comparisons/NotComparison.rb +20 -20
- data/lib/sapphire/DSL/Comparisons/SelectedComparison.rb +17 -17
- data/lib/sapphire/DSL/Comparisons/StartsWithComparison.rb +17 -17
- data/lib/sapphire/DSL/Comparisons/VisibleComparison.rb +17 -17
- data/lib/sapphire/DSL/Configuration/ConfiguredBrowser.rb +12 -12
- data/lib/sapphire/DSL/Configuration/ConfiguredUser.rb +10 -10
- data/lib/sapphire/DSL/Configuration/Use.rb +18 -18
- data/lib/sapphire/DSL/Data/Find.rb +10 -10
- data/lib/sapphire/DSL/Data/GetPageField.rb +13 -13
- data/lib/sapphire/DSL/Data/Verify.rb +10 -10
- data/lib/sapphire/DSL/Evaluations/ControlEvaluation.rb +13 -0
- data/lib/sapphire/DSL/Evaluations/Evaluation.rb +55 -45
- data/lib/sapphire/DSL/Evaluations/FieldNotDefinedEvaluation.rb +20 -20
- data/lib/sapphire/DSL/Evaluations/FieldNotFoundEvaluation.rb +22 -22
- data/lib/sapphire/DSL/Evaluators/Contain.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Count.rb +8 -8
- data/lib/sapphire/DSL/Evaluators/Differ.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Exist.rb +9 -9
- data/lib/sapphire/DSL/Evaluators/In.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Selected.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Show.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Transition.rb +10 -10
- data/lib/sapphire/DSL/Evaluators/Validate.rb +8 -8
- data/lib/sapphire/DSL/Events/Data.rb +12 -0
- data/lib/sapphire/DSL/Events/DataSegment.rb +18 -0
- data/lib/sapphire/DSL/Events/Event.rb +11 -3
- data/lib/sapphire/DSL/Events/Expect.rb +3 -11
- data/lib/sapphire/DSL/Events/Expectation.rb +14 -0
- data/lib/sapphire/DSL/Events/For.rb +11 -0
- data/lib/sapphire/DSL/Events/From.rb +9 -0
- data/lib/sapphire/DSL/Events/Where.rb +11 -0
- data/lib/sapphire/DSL/Profiles/Profile.rb +26 -0
- data/lib/sapphire/DSL/Profiles/Table.rb +9 -0
- data/lib/sapphire/DSL/Scenarios/Is.rb +9 -9
- data/lib/sapphire/DSL/Scenarios/Pending.rb +28 -28
- data/lib/sapphire/DSL/Scenarios/and.rb +25 -25
- data/lib/sapphire/DSL/Scenarios/dsl.rb +59 -59
- data/lib/sapphire/DSL/Scenarios/runner.rb +40 -40
- data/lib/sapphire/Data.rb +1 -1
- data/lib/sapphire/DataAbstractions/Database.rb +57 -57
- data/lib/sapphire/DataAbstractions/Query.rb +20 -20
- data/lib/sapphire/Extensions/Class.rb +2 -2
- data/lib/sapphire/Extensions/Hash.rb +112 -112
- data/lib/sapphire/Extensions/Module.rb +11 -0
- data/lib/sapphire/Extensions/Numeric.rb +6 -6
- data/lib/sapphire/Extensions/Object.rb +4 -0
- data/lib/sapphire/Extensions/String.rb +30 -23
- data/lib/sapphire/Extensions/Symbol.rb +1 -1
- data/lib/sapphire/JobAbstractions/Job.rb +32 -32
- data/lib/sapphire/Observable.rb +87 -0
- data/lib/sapphire/Observers.rb +2 -0
- data/lib/sapphire/Observers/FailedControlHighlighter.rb +41 -0
- data/lib/sapphire/Observers/Highlighter.rb +40 -0
- data/lib/sapphire/Observers/Observer.rb +23 -0
- data/lib/sapphire/Observers/ObserverRepository.rb +37 -0
- data/lib/sapphire/Observers/PassedControlHighlighter.rb +42 -0
- data/lib/sapphire/Observers/VerboseObserver.rb +36 -0
- data/lib/sapphire/TeamCity.rb +10 -10
- data/lib/sapphire/Testing.rb +3 -3
- data/lib/sapphire/Testing/RakeTask.rb +108 -108
- data/lib/sapphire/Testing/ResultList.rb +18 -18
- data/lib/sapphire/Testing/ScenarioResult.rb +36 -36
- data/lib/sapphire/Testing/TestResult.rb +21 -21
- data/lib/sapphire/Testing/TestRunnerAdapter.rb +85 -85
- data/lib/sapphire/UI/ProcessBuilder.rb +173 -173
- data/lib/sapphire/Virtualization.rb +7 -7
- data/lib/sapphire/Web.rb +2 -2
- data/lib/sapphire/WebAbstractions/Controls/AlertBox.rb +20 -20
- data/lib/sapphire/WebAbstractions/Controls/Base/Control.rb +43 -26
- data/lib/sapphire/WebAbstractions/Controls/Button.rb +7 -7
- data/lib/sapphire/WebAbstractions/Controls/CheckBox.rb +3 -3
- data/lib/sapphire/WebAbstractions/Controls/Date.rb +11 -11
- data/lib/sapphire/WebAbstractions/Controls/DropDown.rb +6 -8
- data/lib/sapphire/WebAbstractions/Controls/Hyperlink.rb +8 -8
- data/lib/sapphire/WebAbstractions/Controls/Image.rb +19 -19
- data/lib/sapphire/WebAbstractions/Controls/Label.rb +8 -8
- data/lib/sapphire/WebAbstractions/Controls/List.rb +16 -16
- data/lib/sapphire/WebAbstractions/Controls/RadioButton.rb +2 -2
- data/lib/sapphire/WebAbstractions/Controls/Title.rb +12 -12
- data/lib/sapphire/version.rb +1 -1
- metadata +26 -8
@@ -1,21 +1,21 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
class FieldNotDefinedEvaluation
|
4
|
-
|
5
|
-
attr_reader :field
|
6
|
-
|
7
|
-
def initialize(field, page)
|
8
|
-
@field = field
|
9
|
-
@page = page
|
10
|
-
end
|
11
|
-
|
12
|
-
def Output()
|
13
|
-
messages = []
|
14
|
-
|
15
|
-
messages << "Cannot find control " + @field.to_s + " defined for page " + @page.to_s
|
16
|
-
|
17
|
-
raise ExpectationException.new(messages)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
class FieldNotDefinedEvaluation
|
4
|
+
|
5
|
+
attr_reader :field
|
6
|
+
|
7
|
+
def initialize(field, page)
|
8
|
+
@field = field
|
9
|
+
@page = page
|
10
|
+
end
|
11
|
+
|
12
|
+
def Output()
|
13
|
+
messages = []
|
14
|
+
|
15
|
+
messages << "Cannot find control " + @field.to_s + " defined for page " + @page.to_s
|
16
|
+
|
17
|
+
raise ExpectationException.new(messages)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
21
|
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
class FieldNotFoundEvaluation
|
4
|
-
|
5
|
-
attr_reader :field
|
6
|
-
|
7
|
-
def initialize(field, page, message)
|
8
|
-
@field = field
|
9
|
-
@page = page
|
10
|
-
@message = message
|
11
|
-
end
|
12
|
-
|
13
|
-
def Output()
|
14
|
-
messages = []
|
15
|
-
|
16
|
-
messages << "Cannot find control matching " + @field.to_s + " for page " + @page.to_s
|
17
|
-
messages << "Reason: " + @message
|
18
|
-
|
19
|
-
raise ExpectationException.new(messages)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
class FieldNotFoundEvaluation
|
4
|
+
|
5
|
+
attr_reader :field
|
6
|
+
|
7
|
+
def initialize(field, page, message)
|
8
|
+
@field = field
|
9
|
+
@page = page
|
10
|
+
@message = message
|
11
|
+
end
|
12
|
+
|
13
|
+
def Output()
|
14
|
+
messages = []
|
15
|
+
|
16
|
+
messages << "Cannot find control matching " + @field.to_s + " for page " + @page.to_s
|
17
|
+
messages << "Reason: " + @message
|
18
|
+
|
19
|
+
raise ExpectationException.new(messages)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
23
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Contain(item)
|
5
|
-
Evaluator.new(item) do |item, comparator| item.Contain(item, comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Contain(item)
|
5
|
+
Evaluator.new(item) do |item, comparator| item.Contain(item, comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,9 +1,9 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Count(item)
|
5
|
-
Evaluator.new(item) do |item, comparator| item.Count(item, comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Count(item)
|
5
|
+
Evaluator.new(item) do |item, comparator| item.Count(item, comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
9
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Differ(value)
|
5
|
-
Evaluator.new(value) do |value, comparator| value.Differ(comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Differ(value)
|
5
|
+
Evaluator.new(value) do |value, comparator| value.Differ(comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,9 +1,9 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
def Exist(value)
|
4
|
-
Evaluator.new(value) do |item, comparator| item.NotBeNil(item, comparator) end
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
def Exist(value)
|
4
|
+
Evaluator.new(value) do |item, comparator| item.NotBeNil(item, comparator) end
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def In(item)
|
5
|
-
Evaluator.new(item) do |item, comparator| item.In(item, comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def In(item)
|
5
|
+
Evaluator.new(item) do |item, comparator| item.In(item, comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Selected(item)
|
5
|
-
Evaluator.new(item) do |item, comparator| item.Selected(item, comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Selected(item)
|
5
|
+
Evaluator.new(item) do |item, comparator| item.Selected(item, comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Show(*item)
|
5
|
-
Evaluator.new(item) do |item, comparator| item.first.Show(item, comparator) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Show(*item)
|
5
|
+
Evaluator.new(item) do |item, comparator| item.first.Show(item, comparator) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
module Browser
|
4
|
-
def Transition(url)
|
5
|
-
Evaluator.new(url) do |item, comparator| comparator.Create($driver.ShouldTransitionTo(item, comparator)) end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Browser
|
4
|
+
def Transition(url)
|
5
|
+
Evaluator.new(url) do |item, comparator| comparator.Create($driver.ShouldTransitionTo(item, comparator)) end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
@@ -1,8 +1,8 @@
|
|
1
|
-
module Sapphire
|
2
|
-
module DSL
|
3
|
-
def Validate(hash)
|
4
|
-
Evaluator.new(hash) do |item, comparator| item.Validate(item, comparator) end
|
5
|
-
end
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
def Validate(hash)
|
4
|
+
Evaluator.new(hash) do |item, comparator| item.Validate(item, comparator) end
|
5
|
+
end
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
@@ -3,17 +3,25 @@ module Sapphire
|
|
3
3
|
module Events
|
4
4
|
def Event(name, &block)
|
5
5
|
$events ||= {}
|
6
|
-
$events.merge!(name => Event.new(name
|
6
|
+
$events.merge!(name => Event.new(name))
|
7
|
+
$currentEvent = name
|
8
|
+
block.call()
|
9
|
+
$currentEvent = nil
|
7
10
|
end
|
8
11
|
|
9
12
|
class Event
|
10
13
|
|
11
|
-
def initialize(name
|
14
|
+
def initialize(name)
|
12
15
|
@name = name
|
13
|
-
@
|
16
|
+
@segments = {}
|
17
|
+
end
|
18
|
+
|
19
|
+
def AddSegment(segment)
|
20
|
+
@segments.merge! segment
|
14
21
|
end
|
15
22
|
|
16
23
|
end
|
24
|
+
|
17
25
|
end
|
18
26
|
end
|
19
27
|
end
|
@@ -2,17 +2,9 @@ module Sapphire
|
|
2
2
|
module DSL
|
3
3
|
module Events
|
4
4
|
def Expect(item)
|
5
|
-
|
6
|
-
$
|
7
|
-
|
8
|
-
|
9
|
-
class Expectation
|
10
|
-
|
11
|
-
def initialize(name, block)
|
12
|
-
@name = name
|
13
|
-
@block = block
|
14
|
-
end
|
15
|
-
|
5
|
+
constraint = nil
|
6
|
+
constraint = $currentConstraint if !$currentConstraint.nil?
|
7
|
+
$events[$currentEvent].AddExpectation(Expectation.new(item, constraint))
|
16
8
|
end
|
17
9
|
end
|
18
10
|
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Sapphire
|
2
|
+
module DSL
|
3
|
+
module Profiles
|
4
|
+
def Profile(name, &block)
|
5
|
+
$profiles ||= {}
|
6
|
+
$currentProfile = Profile.new(name)
|
7
|
+
$profiles.merge! name => $currentProfile
|
8
|
+
block.call()
|
9
|
+
$currentProfile = nil
|
10
|
+
end
|
11
|
+
|
12
|
+
class Profile
|
13
|
+
|
14
|
+
def initialize(name)
|
15
|
+
@name = name
|
16
|
+
@lookups = {}
|
17
|
+
end
|
18
|
+
|
19
|
+
def Add(lookup)
|
20
|
+
@lookups.merge! lookup
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|