sapphire 0.5.2 → 0.5.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. data/lib/sapphire.rb +38 -37
  2. data/lib/sapphire/Adapters.rb +1 -0
  3. data/lib/sapphire/Adapters/Selenium/RubySeleniumWebDriver.rb +190 -0
  4. data/lib/sapphire/DSL.rb +6 -6
  5. data/lib/sapphire/DSL/Browser/Accept.rb +9 -9
  6. data/lib/sapphire/DSL/Browser/AlertBox.rb +14 -19
  7. data/lib/sapphire/DSL/Browser/Browser.rb +17 -17
  8. data/lib/sapphire/DSL/Browser/By.rb +10 -10
  9. data/lib/sapphire/DSL/Browser/Check.rb +12 -12
  10. data/lib/sapphire/DSL/Browser/Clear.rb +12 -12
  11. data/lib/sapphire/DSL/Browser/Click.rb +12 -12
  12. data/lib/sapphire/DSL/Browser/Close.rb +12 -12
  13. data/lib/sapphire/DSL/Browser/Compare.rb +18 -18
  14. data/lib/sapphire/DSL/Browser/Complete.rb +15 -15
  15. data/lib/sapphire/DSL/Browser/CurrentUrl.rb +11 -11
  16. data/lib/sapphire/DSL/Browser/Day.rb +24 -24
  17. data/lib/sapphire/DSL/Browser/Differ.rb +18 -18
  18. data/lib/sapphire/DSL/Browser/Error.rb +26 -26
  19. data/lib/sapphire/DSL/Browser/ExecuteAgainstControl.rb +45 -45
  20. data/lib/sapphire/DSL/Browser/Exists.rb +22 -22
  21. data/lib/sapphire/DSL/Browser/For.rb +10 -10
  22. data/lib/sapphire/DSL/Browser/Hide.rb +26 -26
  23. data/lib/sapphire/DSL/Browser/IsHidden.rb +10 -10
  24. data/lib/sapphire/DSL/Browser/IsVisible.rb +33 -33
  25. data/lib/sapphire/DSL/Browser/Keys/Enter.rb +10 -10
  26. data/lib/sapphire/DSL/Browser/Month.rb +24 -24
  27. data/lib/sapphire/DSL/Browser/MouseOver.rb +12 -12
  28. data/lib/sapphire/DSL/Browser/Navigate.rb +11 -11
  29. data/lib/sapphire/DSL/Browser/Popup.rb +2 -4
  30. data/lib/sapphire/DSL/Browser/Press.rb +10 -10
  31. data/lib/sapphire/DSL/Browser/Reload.rb +11 -11
  32. data/lib/sapphire/DSL/Browser/Set.rb +18 -18
  33. data/lib/sapphire/DSL/Browser/Should.rb +42 -42
  34. data/lib/sapphire/DSL/Browser/Show.rb +26 -26
  35. data/lib/sapphire/DSL/Browser/Start.rb +16 -16
  36. data/lib/sapphire/DSL/Browser/To.rb +10 -10
  37. data/lib/sapphire/DSL/Browser/Tracker.rb +15 -15
  38. data/lib/sapphire/DSL/Browser/Transition.rb +26 -26
  39. data/lib/sapphire/DSL/Browser/Uncheck.rb +12 -12
  40. data/lib/sapphire/DSL/Browser/With.rb +10 -10
  41. data/lib/sapphire/DSL/Configuration/ConfiguredBrowser.rb +12 -12
  42. data/lib/sapphire/DSL/Configuration/ConfiguredUser.rb +10 -10
  43. data/lib/sapphire/DSL/Configuration/Use.rb +15 -15
  44. data/lib/sapphire/DSL/Data/Exist.rb +27 -27
  45. data/lib/sapphire/DSL/Data/Find.rb +10 -10
  46. data/lib/sapphire/DSL/Data/GetPageField.rb +17 -17
  47. data/lib/sapphire/DSL/Data/Underscore.rb +8 -8
  48. data/lib/sapphire/DSL/Data/Validate.rb +26 -26
  49. data/lib/sapphire/DSL/Data/Verify.rb +10 -10
  50. data/lib/sapphire/DSL/Scenarios/Is.rb +9 -9
  51. data/lib/sapphire/DSL/Scenarios/Pending.rb +28 -28
  52. data/lib/sapphire/DSL/Scenarios/and.rb +25 -25
  53. data/lib/sapphire/DSL/Scenarios/background.rb +33 -33
  54. data/lib/sapphire/DSL/Scenarios/dsl.rb +59 -59
  55. data/lib/sapphire/DSL/Scenarios/finally.rb +33 -33
  56. data/lib/sapphire/DSL/Scenarios/given.rb +57 -57
  57. data/lib/sapphire/DSL/Scenarios/runner.rb +40 -40
  58. data/lib/sapphire/DSL/Scenarios/scenario.rb +53 -53
  59. data/lib/sapphire/DSL/Scenarios/then.rb +34 -34
  60. data/lib/sapphire/DSL/Scenarios/when.rb +47 -47
  61. data/lib/sapphire/Data.rb +1 -1
  62. data/lib/sapphire/DataAbstractions/Database.rb +57 -57
  63. data/lib/sapphire/DataAbstractions/Query.rb +19 -19
  64. data/lib/sapphire/JobAbstractions/Job.rb +32 -32
  65. data/lib/sapphire/Strategies.rb +1 -1
  66. data/lib/sapphire/TeamCity.rb +8 -8
  67. data/lib/sapphire/Testing.rb +2 -2
  68. data/lib/sapphire/Testing/Executable.rb +30 -30
  69. data/lib/sapphire/Testing/RakeTask.rb +108 -108
  70. data/lib/sapphire/Testing/ResultList.rb +18 -18
  71. data/lib/sapphire/Testing/ResultTree.rb +44 -44
  72. data/lib/sapphire/Testing/ScenarioResult.rb +36 -36
  73. data/lib/sapphire/Testing/TestResult.rb +21 -21
  74. data/lib/sapphire/Testing/TestRunnerAdapter.rb +69 -69
  75. data/lib/sapphire/Virtualization.rb +7 -7
  76. data/lib/sapphire/Web.rb +3 -6
  77. data/lib/sapphire/WebAbstractions/{Controls/Browsers → Browsers}/Chrome.rb +21 -21
  78. data/lib/sapphire/WebAbstractions/{Controls/Browsers → Browsers}/FireFox.rb +22 -22
  79. data/lib/sapphire/WebAbstractions/{Controls/Browsers → Browsers}/InternetExplorer.rb +21 -21
  80. data/lib/sapphire/WebAbstractions/Controls/Base/Control.rb +59 -99
  81. data/lib/sapphire/WebAbstractions/Controls/Base/Page.rb +62 -62
  82. data/lib/sapphire/WebAbstractions/Controls/Button.rb +9 -9
  83. data/lib/sapphire/WebAbstractions/Controls/CheckBox.rb +28 -28
  84. data/lib/sapphire/WebAbstractions/Controls/Date.rb +11 -11
  85. data/lib/sapphire/WebAbstractions/Controls/DropDown.rb +26 -26
  86. data/lib/sapphire/WebAbstractions/Controls/Hyperlink.rb +8 -8
  87. data/lib/sapphire/WebAbstractions/Controls/Image.rb +9 -9
  88. data/lib/sapphire/WebAbstractions/Controls/Label.rb +8 -8
  89. data/lib/sapphire/WebAbstractions/Controls/RadioButton.rb +18 -18
  90. data/lib/sapphire/WebAbstractions/Controls/TextBox.rb +31 -31
  91. data/lib/sapphire/WebAbstractions/Controls/Title.rb +12 -12
  92. data/lib/sapphire/version.rb +3 -3
  93. metadata +14 -13
  94. data/lib/sapphire/WebAbstractions/Controls/Base/WebBrowser.rb +0 -91
@@ -1,20 +1,20 @@
1
- module Sapphire
2
- module DataAbstractions
3
- module Query
4
- def Execute(block)
5
- x = self.Database.new
6
-
7
- x.Open $config[x.Connection]
8
- y = AppConfig.Current.SqlPath || ""
9
- path = File.expand_path(y + self.Script, __FILE__)
10
- file = File.open(path)
11
- contents = file.read
12
- self.Tokenize(contents)
13
-
14
- results = x.query(contents)
15
- block.call results
16
- x.close
17
- end
18
- end
19
- end
1
+ module Sapphire
2
+ module DataAbstractions
3
+ module Query
4
+ def Execute(block)
5
+ x = self.Database.new
6
+
7
+ x.Open $config[x.Connection]
8
+ y = AppConfig.Current.SqlPath || ""
9
+ path = File.expand_path(y + self.Script, __FILE__)
10
+ file = File.open(path)
11
+ contents = file.read
12
+ self.Tokenize(contents)
13
+
14
+ results = x.query(contents)
15
+ block.call results
16
+ x.close
17
+ end
18
+ end
19
+ end
20
20
  end
@@ -1,32 +1,32 @@
1
- module Sapphire
2
- module JobAbstractions
3
- class Job
4
-
5
- def Server
6
- return ""
7
- end
8
-
9
- def User
10
- return ""
11
- end
12
-
13
- def Password
14
- return ""
15
- end
16
-
17
- def Path
18
- return ""
19
- end
20
-
21
- def PsExecPath
22
- return ""
23
- end
24
-
25
- def Arg
26
- return nil
27
- end
28
-
29
- end
30
- end
31
- end
32
-
1
+ module Sapphire
2
+ module JobAbstractions
3
+ class Job
4
+
5
+ def Server
6
+ return ""
7
+ end
8
+
9
+ def User
10
+ return ""
11
+ end
12
+
13
+ def Password
14
+ return ""
15
+ end
16
+
17
+ def Path
18
+ return ""
19
+ end
20
+
21
+ def PsExecPath
22
+ return ""
23
+ end
24
+
25
+ def Arg
26
+ return nil
27
+ end
28
+
29
+ end
30
+ end
31
+ end
32
+
@@ -1,2 +1,2 @@
1
- require File.expand_path(File.dirname(__FILE__) +'/Strategies/Strategy.rb', __FILE__)
1
+ require File.expand_path(File.dirname(__FILE__) +'/Strategies/Strategy.rb', __FILE__)
2
2
  Dir[File.dirname(__FILE__) + '/Strategies/*.rb'].each {|file| require file }
@@ -1,9 +1,9 @@
1
- Dir[File.dirname(__FILE__) + '/TeamCity/*.rb'].each {|file| require file } if ENV["TeamCity"] == 1
2
-
3
- module Sapphire
4
- module Testing
5
- module TeamCity
6
-
7
- end
8
- end
1
+ Dir[File.dirname(__FILE__) + '/TeamCity/*.rb'].each {|file| require file } if ENV["TeamCity"] == 1
2
+
3
+ module Sapphire
4
+ module Testing
5
+ module TeamCity
6
+
7
+ end
8
+ end
9
9
  end
@@ -1,2 +1,2 @@
1
- require File.expand_path(File.dirname(__FILE__) +'/Testing/Reporter.rb', __FILE__)
2
- Dir[File.dirname(__FILE__) + '/Testing/*.rb'].each {|file| require file }
1
+ require File.expand_path(File.dirname(__FILE__) +'/Testing/Reporter.rb', __FILE__)
2
+ Dir[File.dirname(__FILE__) + '/Testing/*.rb'].each {|file| require file }
@@ -1,30 +1,30 @@
1
- module Sapphire
2
- module Testing
3
- module Executable
4
- def execute(reporter)
5
- start = Time.now
6
- reporter.TestStarted(self)
7
- begin
8
- if(self.value.is_a? Pending)
9
- result = ResultTree.new(self.text, TestResult.new("pending", self, "Pending", "", Time.now - start))
10
- self.AddResult(result)
11
- reporter.TestPending result
12
- return
13
- end
14
- self.block.call
15
- result = ResultTree.new(self.text, TestResult.new("pass", self, "Success", "", Time.now - start))
16
- self.AddResult(result)
17
- reporter.TestPassed result
18
- rescue => msg
19
- stack = msg.backtrace
20
- message = msg.messages if (msg.is_a? ExpectationException)
21
- message ||= msg.message
22
- result = ResultTree.new(self.text, TestResult.new("fail", self, message, stack, Time.now - start))
23
- self.AddResult(result)
24
- reporter.TestFailed result
25
- end
26
- end
27
- end
28
- end
29
- end
30
-
1
+ module Sapphire
2
+ module Testing
3
+ module Executable
4
+ def execute(reporter)
5
+ start = Time.now
6
+ reporter.TestStarted(self)
7
+ begin
8
+ if(self.value.is_a? Pending)
9
+ result = ResultTree.new(self.text, TestResult.new("pending", self, "Pending", "", Time.now - start))
10
+ self.AddResult(result)
11
+ reporter.TestPending result
12
+ return
13
+ end
14
+ self.block.call
15
+ result = ResultTree.new(self.text, TestResult.new("pass", self, "Success", "", Time.now - start))
16
+ self.AddResult(result)
17
+ reporter.TestPassed result
18
+ rescue => msg
19
+ stack = msg.backtrace
20
+ message = msg.messages if (msg.is_a? ExpectationException)
21
+ message ||= msg.message
22
+ result = ResultTree.new(self.text, TestResult.new("fail", self, message, stack, Time.now - start))
23
+ self.AddResult(result)
24
+ reporter.TestFailed result
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+
@@ -1,109 +1,109 @@
1
- require 'rake'
2
- require 'json'
3
-
4
- module Sapphire
5
- module Testing
6
- class RakeTask
7
- attr_accessor :pattern
8
- attr_accessor :verbose
9
- attr_accessor :fail_on_error
10
- attr_accessor :name
11
-
12
-
13
- def test_outcome(result)
14
-
15
- result.results.each do |r|
16
-
17
- if(r.type == 'fail')
18
- return 'fail'
19
- end
20
-
21
- if(r.type == 'pending')
22
- return 'pending'
23
- end
24
-
25
- if(!r.results.empty?)
26
- return test_outcome(r)
27
- end
28
-
29
- end
30
-
31
- return 'pass'
32
-
33
- end
34
-
35
- def initialize(*args)
36
-
37
- @name = args.shift || :spec
38
- @pattern = nil
39
- @verbose, @fail_on_error = true, true
40
-
41
- yield self if block_given?
42
-
43
- Rake::Task.define_task name do
44
- RakeFileUtils.send(:verbose, verbose) do
45
- files_to_run = FileList[ pattern ].map { |f|
46
- y = nil
47
- x = nil
48
- x = f.gsub(/"/, '\"') if f != nil
49
- y = x.gsub(/'/, "\\\\'") if x != nil
50
- y
51
- }
52
- if files_to_run.empty?
53
- puts "No examples matching #{pattern} could be found"
54
- else
55
- begin
56
-
57
- files_to_run.each do |f|
58
- next unless f != nil
59
- require File.expand_path("../../" + f.to_s, __FILE__) unless File.directory? f
60
- end
61
-
62
- success_array = []
63
- pending_array = []
64
- failure_array = []
65
-
66
- i = 3
67
-
68
- Runner.instance.scenarios.each do |scenario|
69
- i += 1
70
- scenario.execute i
71
- scenario.result.set_id i
72
- scenario.result.set_type test_outcome(scenario.result)
73
-
74
- success_array << scenario.result if scenario.result.type == "pass"
75
- pending_array << scenario.result if scenario.result.type == "pending"
76
- failure_array << scenario.result if scenario.result.type == "fail"
77
- end
78
-
79
- item_array = []
80
- item_array << ResultsList.new("Passing", success_array, 1)
81
- item_array << ResultsList.new("Pending", pending_array, 2)
82
- item_array << ResultsList.new("Failing", failure_array, 3)
83
-
84
-
85
- File.open(File.dirname(__FILE__) + "/../ReportGenerator/output.json", "w") do |file|
86
- file.puts ActiveSupport::JSON.encode item_array
87
- end
88
-
89
- Runner.instance.scenarios.each do |scenario|
90
- File.open(File.dirname(__FILE__) + "/../ReportGenerator/" + scenario.result.myId.to_s + ".json", "w") do |file|
91
- file.puts ActiveSupport::JSON.encode scenario.result
92
- end
93
- end
94
-
95
- rescue => e
96
- stack = ""
97
- e.backtrace.each do |line|
98
- stack += "\r\n" + line
99
- end
100
-
101
- raise("Some tests have failed: " + e.message + " : " + stack) if fail_on_error
102
- end
103
- end
104
- end
105
- end
106
- end
107
- end
108
- end
1
+ require 'rake'
2
+ require 'json'
3
+
4
+ module Sapphire
5
+ module Testing
6
+ class RakeTask
7
+ attr_accessor :pattern
8
+ attr_accessor :verbose
9
+ attr_accessor :fail_on_error
10
+ attr_accessor :name
11
+
12
+
13
+ def test_outcome(result)
14
+
15
+ result.results.each do |r|
16
+
17
+ if(r.type == 'fail')
18
+ return 'fail'
19
+ end
20
+
21
+ if(r.type == 'pending')
22
+ return 'pending'
23
+ end
24
+
25
+ if(!r.results.empty?)
26
+ return test_outcome(r)
27
+ end
28
+
29
+ end
30
+
31
+ return 'pass'
32
+
33
+ end
34
+
35
+ def initialize(*args)
36
+
37
+ @name = args.shift || :spec
38
+ @pattern = nil
39
+ @verbose, @fail_on_error = true, true
40
+
41
+ yield self if block_given?
42
+
43
+ Rake::Task.define_task name do
44
+ RakeFileUtils.send(:verbose, verbose) do
45
+ files_to_run = FileList[ pattern ].map { |f|
46
+ y = nil
47
+ x = nil
48
+ x = f.gsub(/"/, '\"') if f != nil
49
+ y = x.gsub(/'/, "\\\\'") if x != nil
50
+ y
51
+ }
52
+ if files_to_run.empty?
53
+ puts "No examples matching #{pattern} could be found"
54
+ else
55
+ begin
56
+
57
+ files_to_run.each do |f|
58
+ next unless f != nil
59
+ require File.expand_path("../../" + f.to_s, __FILE__) unless File.directory? f
60
+ end
61
+
62
+ success_array = []
63
+ pending_array = []
64
+ failure_array = []
65
+
66
+ i = 3
67
+
68
+ Runner.instance.scenarios.each do |scenario|
69
+ i += 1
70
+ scenario.execute i
71
+ scenario.result.set_id i
72
+ scenario.result.set_type test_outcome(scenario.result)
73
+
74
+ success_array << scenario.result if scenario.result.type == "pass"
75
+ pending_array << scenario.result if scenario.result.type == "pending"
76
+ failure_array << scenario.result if scenario.result.type == "fail"
77
+ end
78
+
79
+ item_array = []
80
+ item_array << ResultsList.new("Passing", success_array, 1)
81
+ item_array << ResultsList.new("Pending", pending_array, 2)
82
+ item_array << ResultsList.new("Failing", failure_array, 3)
83
+
84
+
85
+ File.open(File.dirname(__FILE__) + "/../ReportGenerator/output.json", "w") do |file|
86
+ file.puts ActiveSupport::JSON.encode item_array
87
+ end
88
+
89
+ Runner.instance.scenarios.each do |scenario|
90
+ File.open(File.dirname(__FILE__) + "/../ReportGenerator/" + scenario.result.myId.to_s + ".json", "w") do |file|
91
+ file.puts ActiveSupport::JSON.encode scenario.result
92
+ end
93
+ end
94
+
95
+ rescue => e
96
+ stack = ""
97
+ e.backtrace.each do |line|
98
+ stack += "\r\n" + line
99
+ end
100
+
101
+ raise("Some tests have failed: " + e.message + " : " + stack) if fail_on_error
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
107
+ end
108
+ end
109
109
  end
@@ -1,19 +1,19 @@
1
- module Sapphire
2
- module Testing
3
- class ResultsList
4
-
5
- attr_reader :myId
6
- attr_reader :text
7
- attr_reader :children
8
-
9
- def initialize(text, results, id)
10
- @myId = id
11
- @text = text
12
- @children = results
13
- @expanded = true
14
- @count = results.length
15
- end
16
-
17
- end
18
- end
1
+ module Sapphire
2
+ module Testing
3
+ class ResultsList
4
+
5
+ attr_reader :myId
6
+ attr_reader :text
7
+ attr_reader :children
8
+
9
+ def initialize(text, results, id)
10
+ @myId = id
11
+ @text = text
12
+ @children = results
13
+ @expanded = true
14
+ @count = results.length
15
+ end
16
+
17
+ end
18
+ end
19
19
  end