gridium 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eefb67c054454fc770901e82fc48562a69983c0f
4
- data.tar.gz: 691a38ba1a6927f33596de5739512a1a64e9d281
3
+ metadata.gz: 73b975ad9416cef474cf4fa5e93bd8555550c13d
4
+ data.tar.gz: de3481093e293f456cb345c779d988b452bcf1d8
5
5
  SHA512:
6
- metadata.gz: 46f188677f67d98523ccd4b771e60fc3b8abc6f0a0d7697b50e04e6f3cbead6590504e30af15ce9b8ec22d3829d43463301815942db26186b8ab52740aded3cd
7
- data.tar.gz: 874e0ccf750bc76e3e562f8e9a9339b7d186b7ff15455fbf427fa364e7f166ab4fbd0cd9a6d28a6dd694c720f3c8493208af467556a1fc37d8d7ebbf076801f4
6
+ metadata.gz: a0e3e4721c199250e6f8456f7864346ec8462039abc4d6d6018235c9e2a9a91360b4a063aa95cd33e595632b6e66a0e53b1388bc786c035a9aa920d6728fd01c
7
+ data.tar.gz: 005cf0ffe01492be3e422aac5e10355de684e47ad6e91d50b1f17e1da2046d211c4c31edb3b9af053f9fd1ddd8e8b89f9cc1c3ae8283d579197663877ed5bfd9
data/README.md CHANGED
@@ -29,6 +29,7 @@ To get started using Gridium add the Gem to your automated test library. Includ
29
29
  ```ruby
30
30
  Gridium.configure do |config|
31
31
  config.report_dir = '/path/to/automation/project'
32
+ config.browser_source = :local
32
33
  config.target_environment = "Integration"
33
34
  config.browser = :firefox
34
35
  config.url = "http://www.applicationundertest.com"
@@ -1,5 +1,6 @@
1
1
  require 'selenium-webdriver'
2
2
  require 'uri'
3
+ require 'spec_data'
3
4
 
4
5
 
5
6
  class Driver
@@ -163,7 +164,7 @@ class Driver
163
164
  timestamp = Time.now.strftime("%Y_%m_%d__%H_%M_%S")
164
165
  screenshot_path = File.join($current_run_dir, "screenshot__#{timestamp}__#{type}.png")
165
166
  driver.save_screenshot(screenshot_path)
166
- $screenshots_captured.push("screenshot__#{timestamp}__#{type}.png") # used by custom_formatter.rb for embedding in report
167
+ SpecData.screenshots_captured.push("screenshot__#{timestamp}__#{type}.png") # used by custom_formatter.rb for embedding in report
167
168
  end
168
169
 
169
170
  def self.list_open_windows
@@ -1,5 +1,6 @@
1
1
  require 'selenium-webdriver'
2
2
  require 'oily_png'
3
+ require 'spec_data'
3
4
 
4
5
  class Element
5
6
  attr_reader :name, :by, :locator
@@ -33,7 +34,7 @@ class Element
33
34
  @element
34
35
  end
35
36
 
36
- def element= e
37
+ def element=(e)
37
38
  @element = e
38
39
  end
39
40
 
@@ -180,9 +181,9 @@ class Element
180
181
  element.text
181
182
  end
182
183
 
183
- def text= text
184
+ def text=(text)
184
185
  element.clear
185
- element.send_keys text
186
+ element.send_keys(text)
186
187
  end
187
188
 
188
189
  def value
@@ -234,7 +235,7 @@ class Element
234
235
  image2 = image1.to_image
235
236
  element_screenshot_path = File.join($current_run_dir, "#{name}__#{timestamp}.png")
236
237
  image2.save(element_screenshot_path)
237
- $screenshots_captured.push("#{name}__#{timestamp}.png")
238
+ SpecData.screenshots_captured.push("#{name}__#{timestamp}.png")
238
239
  end
239
240
 
240
241
  def method_missing(method_sym, *arguments, &block)
@@ -1,12 +1,12 @@
1
- require "gridium/version"
2
- require "log"
3
- require "spec_data"
4
- require "driver"
5
- require "driver_extensions"
6
- require "element"
7
- require "element_extensions"
8
- require "element_verification"
9
- require "page"
1
+ require 'gridium/version'
2
+ require 'log'
3
+ require 'spec_data'
4
+ require 'driver'
5
+ require 'driver_extensions'
6
+ require 'element'
7
+ require 'element_extensions'
8
+ require 'element_verification'
9
+ require 'page'
10
10
 
11
11
  module Gridium
12
12
  class << self
@@ -1,3 +1,3 @@
1
1
  module Gridium
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
data/lib/log.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # Logger class wraps around ruby 'logger' gem to provide diagnostic and workflow information
2
-
2
+ require 'spec_data'
3
3
  require 'logger'
4
4
 
5
5
  # Add in multiple device logging directly into Logger class
@@ -44,99 +44,99 @@ end # class logger
44
44
 
45
45
  # Singleton Logger class
46
46
  module Gridium
47
- class Log
48
- # make this class static
49
- class << self
50
-
51
- #
52
- # more generic than INFO, useful for debugging issues
53
- # DEBUG = 0
54
- # generic, useful information about system operation
55
- # INFO = 1
56
- # a warning
57
- # WARN = 2
58
- # a handleable error condition
59
- # ERROR = 3
60
- # an unhandleable error that results in a program crash
61
- # FATAL = 4
62
- # an unknown message that should always be logged
63
- # UNKNOWN = 5
64
-
65
- def debug(msg)
66
- log.debug(msg)
67
- end
68
-
69
- def info(msg)
70
- log.info(msg)
71
- end
47
+ class Log
48
+ # make this class static
49
+ class << self
50
+
51
+ #
52
+ # more generic than INFO, useful for debugging issues
53
+ # DEBUG = 0
54
+ # generic, useful information about system operation
55
+ # INFO = 1
56
+ # a warning
57
+ # WARN = 2
58
+ # a handleable error condition
59
+ # ERROR = 3
60
+ # an unhandleable error that results in a program crash
61
+ # FATAL = 4
62
+ # an unknown message that should always be logged
63
+ # UNKNOWN = 5
64
+
65
+ def debug(msg)
66
+ log.debug(msg)
67
+ end
72
68
 
73
- def warn(msg)
74
- log.warn(msg)
75
- Driver.save_screenshot('warning') if Gridium.config.screenshot_on_failure
76
- $execution_warnings << msg
77
- end
69
+ def info(msg)
70
+ log.info(msg)
71
+ end
78
72
 
79
- def error(msg)
80
- log.error(msg)
81
- Driver.save_screenshot('error') if Gridium.config.screenshot_on_failure
82
- $verification_errors << msg
83
- end
73
+ def warn(msg)
74
+ log.warn(msg)
75
+ Driver.save_screenshot('warning') if Gridium.config.screenshot_on_failure
76
+ SpecData.execution_warnings << msg
77
+ end
84
78
 
85
- def add_device device
86
- @@devices ||= []
87
- log.attach(device)
88
- @@devices << device
89
- end
79
+ def error(msg)
80
+ log.error(msg)
81
+ Driver.save_screenshot('error') if Gridium.config.screenshot_on_failure
82
+ SpecData.verification_errors << msg
83
+ end
90
84
 
91
- def close
92
- @@devices.each { |dev| @@logger.detach(dev) }
93
- @@devices.clear
94
- log.close if log
95
- end
85
+ def add_device device
86
+ @@devices ||= []
87
+ log.attach(device)
88
+ @@devices << device
89
+ end
96
90
 
91
+ def close
92
+ @@devices.each { |dev| @@logger.detach(dev) }
93
+ @@devices.clear
94
+ log.close if log
95
+ end
97
96
 
98
- private
99
97
 
100
- def log
101
- @@logger ||= initialize_logger
102
- end
98
+ private
103
99
 
104
- def initialize_logger
105
- # log to STDOUT and file
106
- logger ||= Logger.new(STDOUT)
107
-
108
- # messages that have the set level or higher will be logged
109
- case Gridium.config.log_level
110
- when :debug then
111
- level = Logger::DEBUG
112
- when :info then
113
- level = Logger::INFO
114
- when :warn then
115
- level = Logger::WARN
116
- when :error then
117
- level = Logger::ERROR
118
- when :fatal then
119
- level = Logger::FATAL
100
+ def log
101
+ @@logger ||= initialize_logger
120
102
  end
121
103
 
122
- logger.level = level
123
-
124
- logger.formatter = proc do |severity, datetime, progname, msg|
125
- base_msg = "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}][#{severity}]"
126
- sev = severity.to_s
127
- if sev.eql?("DEBUG")
128
- "#{base_msg} #{msg}\n"
129
- elsif sev.eql?("INFO")
130
- "#{base_msg} > #{msg}\n"
131
- elsif sev.eql?("WARN")
132
- "#{base_msg} X #{msg}\n"
133
- else
134
- "#{base_msg} X #{msg}\n"
104
+ def initialize_logger
105
+ # log to STDOUT and file
106
+ logger ||= Logger.new(STDOUT)
107
+
108
+ # messages that have the set level or higher will be logged
109
+ case Gridium.config.log_level
110
+ when :debug then
111
+ level = Logger::DEBUG
112
+ when :info then
113
+ level = Logger::INFO
114
+ when :warn then
115
+ level = Logger::WARN
116
+ when :error then
117
+ level = Logger::ERROR
118
+ when :fatal then
119
+ level = Logger::FATAL
120
+ end
121
+
122
+ logger.level = level
123
+
124
+ logger.formatter = proc do |severity, datetime, progname, msg|
125
+ base_msg = "[#{datetime.strftime('%Y-%m-%d %H:%M:%S')}][#{severity}]"
126
+ sev = severity.to_s
127
+ if sev.eql?("DEBUG")
128
+ "#{base_msg} #{msg}\n"
129
+ elsif sev.eql?("INFO")
130
+ "#{base_msg} > #{msg}\n"
131
+ elsif sev.eql?("WARN")
132
+ "#{base_msg} X #{msg}\n"
133
+ else
134
+ "#{base_msg} X #{msg}\n"
135
+ end
135
136
  end
136
- end
137
137
 
138
- logger
139
- end # initialize_logger
140
- end # class << self
141
- end # Log class
138
+ logger
139
+ end # initialize_logger
140
+ end # class << self
141
+ end # Log class
142
142
  end
@@ -1,10 +1,6 @@
1
1
  module Gridium
2
2
  class Page
3
3
 
4
- def initialize
5
-
6
- end
7
-
8
4
  def self.switch_to_frame(frame)
9
5
  Driver.driver.switch_to.frame(frame)
10
6
  end
@@ -36,7 +32,6 @@ module Gridium
36
32
  rescue Exception => e
37
33
  return false
38
34
  end
39
-
40
35
  end
41
36
 
42
37
  def self.has_link?(linktext)
@@ -48,7 +43,7 @@ module Gridium
48
43
  end
49
44
 
50
45
  def self.has_text?(text)
51
- if Driver.html.include? text
46
+ if Driver.html.include?(text)
52
47
  return true
53
48
  else
54
49
  Log.warn("Could not find expected text: #{text} on page.")
@@ -63,6 +58,7 @@ module Gridium
63
58
  rescue
64
59
  Log.warn("Could not find the flash message!")
65
60
  end
61
+
66
62
  if element
67
63
  return true
68
64
  else
@@ -98,7 +94,6 @@ module Gridium
98
94
  def click_link(linktext)
99
95
  link = Element.new("Clicking #{linktext} Link", :link_text, linktext)
100
96
  link.click
101
-
102
97
  end
103
98
 
104
99
  def click_button(button_name)
@@ -116,6 +111,5 @@ module Gridium
116
111
  def check(id) #checks a checkbox
117
112
  Driver.driver.find_element(:id, id).click
118
113
  end
119
-
120
114
  end
121
115
  end
@@ -1,47 +1,47 @@
1
- class Spec_data
1
+ class SpecData
2
2
  def self.load_suite_state
3
- $screenshots_message = Array.new
4
- $screenshots_captured = Array.new
3
+ screenshots_message
4
+ screenshots_captured
5
5
  end
6
6
 
7
7
  def self.load_spec_state
8
- $execution_warnings = Array.new
9
- $verification_errors = Array.new
8
+ execution_warnings
9
+ verification_errors
10
10
  $verification_passes = 0
11
11
  $fail_test_instantly = false
12
12
  $fail_test_at_end = false
13
13
  end
14
14
 
15
15
  def self.clear_spec_state
16
- $execution_warnings.clear
17
- $verification_errors.clear
16
+ execution_warnings.clear
17
+ verification_errors.clear
18
18
  $verification_passes = 0
19
19
  $fail_test_instantly = false
20
20
  $fail_test_at_end = false
21
21
  end
22
22
 
23
23
  def self.reset_captured_screenshots
24
- $screenshots_message.clear
25
- $screenshots_captured.clear
24
+ screenshots_message.clear
25
+ screenshots_captured.clear
26
26
  $screenshots_data = {}
27
27
  $fail_screenshot = nil
28
28
  end
29
29
 
30
30
  def self.determine_spec_result
31
- if $execution_warnings.empty?
31
+ if execution_warnings.empty?
32
32
  Log.info("No warnings detected during test run.")
33
33
  else
34
- Log.info("Warnings detected during test run: (#{$execution_warnings.length} total).")
34
+ Log.info("Warnings detected during test run: (#{execution_warnings.length} total).")
35
35
  msg = "Warning detected during test execution:"
36
- $execution_warnings.each { |error_message| msg << "\n\t" + error_message }
36
+ execution_warnings.each { |error_message| msg << "\n\t" + error_message }
37
37
  end
38
38
 
39
- if $verification_errors.empty?
39
+ if verification_errors.empty?
40
40
  Log.info("No errors detected during test run.")
41
41
  else
42
- Log.info("Errors detected during test run: (#{$verification_errors.length} total).")
42
+ Log.info("Errors detected during test run: (#{verification_errors.length} total).")
43
43
  msg = "TEST FAILURE: Errors detected during test execution:"
44
- $verification_errors.each { |error_message| msg << "\n\t" + error_message }
44
+ verification_errors.each { |error_message| msg << "\n\t" + error_message }
45
45
  end
46
46
 
47
47
  if $fail_test_instantly
@@ -57,7 +57,29 @@ class Spec_data
57
57
 
58
58
  def self.add_spec_stats_to_suite_stats
59
59
  $verifications_total += $verification_passes
60
- $warnings_total += $execution_warnings.length
61
- $errors_total += $verification_errors.length
60
+ $warnings_total += execution_warnings.length
61
+ $errors_total += verification_errors.length
62
+ end
63
+
64
+ def self.clear_all_spec_stats
65
+ $verifications_total = 0
66
+ $warnings_total = 0
67
+ $errors_total = 0
68
+ end
69
+
70
+ def self.screenshots_message
71
+ @screenshots_message ||= Array.new
72
+ end
73
+
74
+ def self.screenshots_captured
75
+ @screenshots_captured ||= Array.new
76
+ end
77
+
78
+ def self.execution_warnings
79
+ @execution_warnings ||= Array.new
80
+ end
81
+
82
+ def self.verification_errors
83
+ @verification_errors ||= Array.new
62
84
  end
63
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gridium
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Seth Urban
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-09-24 00:00:00.000000000 Z
11
+ date: 2015-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler