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.
- data/lib/red-glass/red_glass.rb +1 -24
- data/lib/red-glass/red_glass_listener.rb +18 -0
- metadata +70 -22
- data/lib/Selenium/driver.rb +0 -16
- data/lib/Selenium/element.rb +0 -23
- data/lib/Selenium/navigation.rb +0 -17
- data/lib/Selenium/search_context.rb +0 -29
data/lib/red-glass/red_glass.rb
CHANGED
@@ -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.
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ! '>='
|
53
68
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
69
|
+
version: 2.32.0
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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.
|
242
|
+
rubygems_version: 1.8.24
|
195
243
|
signing_key:
|
196
244
|
specification_version: 3
|
197
245
|
summary: ! 'Red Glass: Selenium event pane'
|
data/lib/Selenium/driver.rb
DELETED
@@ -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
|
data/lib/Selenium/element.rb
DELETED
@@ -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
|
data/lib/Selenium/navigation.rb
DELETED
@@ -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
|