red-glass 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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