gridium 0.1.7 → 0.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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