red-glass 0.0.5 → 0.0.6

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.
@@ -1,10 +1,6 @@
1
1
  require "selenium-webdriver"
2
2
  require "uuid"
3
3
  require "net/http"
4
- require_relative "../Selenium/driver"
5
- require_relative "../Selenium/element"
6
- require_relative "../Selenium/navigation"
7
- require_relative "../Selenium/search_context"
8
4
 
9
5
  class RedGlass
10
6
  attr_accessor :driver, :test_id, :opts, :port, :pid, :recording
@@ -13,30 +9,11 @@ class RedGlass
13
9
 
14
10
  def initialize(driver, opts={})
15
11
  @driver = driver
16
- @driver.navigate.add_observer self
17
- @driver.add_observer self, :found_element_event
18
12
  @opts = opts
13
+ opts[:listener].red_glass = self if opts[:listener]
19
14
  @recording = false
20
15
  end
21
16
 
22
- def update(url=nil)
23
- if @recording
24
- reload
25
- end
26
- end
27
-
28
- def click_event(url=nil)
29
- if @recording
30
- reload if !has_red_glass_js?
31
- end
32
- end
33
-
34
- def found_element_event(element)
35
- if @recording
36
- element.add_observer self, :click_event
37
- end
38
- end
39
-
40
17
  def start
41
18
  set_config
42
19
  start_server
@@ -0,0 +1,18 @@
1
+ require 'selenium/webdriver/support/abstract_event_listener'
2
+
3
+ class RedGlassListener < Selenium::WebDriver::Support::AbstractEventListener
4
+ attr_accessor :red_glass
5
+
6
+ def after_navigate_back(driver)
7
+ @red_glass.reload
8
+ end
9
+
10
+ def after_navigate_forward(driver)
11
+ @red_glass.reload
12
+ end
13
+
14
+ def after_navigate_to(url, driver)
15
+ @red_glass.reload
16
+ end
17
+
18
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red-glass
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-23 00:00:00.000000000 Z
12
+ date: 2013-05-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70111554035260 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70111554035260
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: em-websocket
27
- requirement: &70111554034700 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70111554034700
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: thin
38
- requirement: &70111554034020 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,21 +53,31 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70111554034020
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: selenium-webdriver
49
- requirement: &70111554033120 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
53
68
  - !ruby/object:Gem::Version
54
- version: '0'
69
+ version: 2.32.0
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70111554033120
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 2.32.0
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: json
60
- requirement: &70111554032200 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *70111554032200
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: uuid
71
- requirement: &70111554031060 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ! '>='
@@ -76,10 +101,31 @@ dependencies:
76
101
  version: '0'
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *70111554031060
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: rack-test
82
- requirement: &70111554030360 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rspec
128
+ requirement: !ruby/object:Gem::Requirement
83
129
  none: false
84
130
  requirements:
85
131
  - - ! '>='
@@ -87,7 +133,12 @@ dependencies:
87
133
  version: '0'
88
134
  type: :development
89
135
  prerelease: false
90
- version_requirements: *70111554030360
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
91
142
  description: Red Glass works alongside Selenium to observe browser events, and provides
92
143
  an interactive log which illustrates changes to the DOM during an automation session.
93
144
  email: frankj.ohara@gmail.com
@@ -165,12 +216,9 @@ files:
165
216
  - lib/red-glass/public/stylesheets/ui-lightness/jquery-ui-1.8.23.custom.css
166
217
  - lib/red-glass/red-glass-app.rb
167
218
  - lib/red-glass/red_glass.rb
219
+ - lib/red-glass/red_glass_listener.rb
168
220
  - lib/red-glass/views/index.erb
169
221
  - lib/red-glass.rb
170
- - lib/Selenium/driver.rb
171
- - lib/Selenium/element.rb
172
- - lib/Selenium/navigation.rb
173
- - lib/Selenium/search_context.rb
174
222
  homepage: https://github.com/fohara/red-glass
175
223
  licenses: []
176
224
  post_install_message:
@@ -191,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
239
  version: '0'
192
240
  requirements: []
193
241
  rubyforge_project:
194
- rubygems_version: 1.8.10
242
+ rubygems_version: 1.8.24
195
243
  signing_key:
196
244
  specification_version: 3
197
245
  summary: ! 'Red Glass: Selenium event pane'
@@ -1,16 +0,0 @@
1
- require 'observer'
2
-
3
- module Selenium
4
- module WebDriver
5
- class Driver
6
- include SearchContext
7
- include Observable
8
-
9
- def found_element(element)
10
- changed
11
- notify_observers element
12
- end
13
-
14
- end # Driver
15
- end # WebDriver
16
- end # Selenium
@@ -1,23 +0,0 @@
1
- require 'observer'
2
-
3
- module Selenium
4
- module WebDriver
5
- class Element
6
- include SearchContext
7
- include Observable
8
-
9
- def click
10
- result = bridge.clickElement @id
11
- changed
12
- notify_observers
13
- result
14
- end
15
-
16
- def found_element(element)
17
- changed
18
- notify_observers element
19
- end
20
-
21
- end
22
- end
23
- end
@@ -1,17 +0,0 @@
1
- require 'observer'
2
-
3
- module Selenium
4
- module WebDriver
5
- class Navigation
6
- include Observable
7
-
8
- def to(url)
9
- result = @bridge.get url
10
- changed
11
- notify_observers url
12
- result
13
- end
14
-
15
- end
16
- end
17
- end
@@ -1,29 +0,0 @@
1
- module Selenium
2
- module WebDriver
3
- module SearchContext
4
-
5
- def find_element(*args)
6
- how, what = extract_args(args)
7
-
8
- unless by = FINDERS[how.to_sym]
9
- raise ArgumentError, "cannot find element by #{how.inspect}"
10
- end
11
-
12
- result = bridge.find_element_by by, what.to_s, ref
13
- self.found_element result
14
- result
15
- end
16
-
17
- def find_elements(*args)
18
- how, what = extract_args(args)
19
-
20
- unless by = FINDERS[how.to_sym]
21
- raise ArgumentError, "cannot find elements by #{how.inspect}"
22
- end
23
-
24
- bridge.find_elements_by by, what.to_s, ref
25
- end
26
-
27
- end # SearchContext
28
- end # WebDriver
29
- end # Selenium