domreactor-redglass 0.0.3 → 0.0.4
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/README.md
CHANGED
@@ -13,6 +13,7 @@ You will need a DomReactor account and an API token to use DomReactor's automate
|
|
13
13
|
browsers = [:firefox, :chrome]
|
14
14
|
archive_location = '/Users/you/Desktop/red_glass_snapshots'
|
15
15
|
test_id = 1
|
16
|
+
page_url = 'http://google.com'
|
16
17
|
opts = {
|
17
18
|
baseline_browser: {name: 'firefox', version: '20.0', platform: 'darwin'},
|
18
19
|
threshold: 0.02
|
@@ -23,16 +24,16 @@ browsers.each do |browser|
|
|
23
24
|
listener = RedGlassListener.new
|
24
25
|
driver = Selenium::WebDriver.for browser, :listener => listener
|
25
26
|
red_glass = RedGlass.new driver, {listener: listener, archive_location: archive_location, test_id: test_id}
|
26
|
-
driver.navigate.to
|
27
|
+
driver.navigate.to page_url
|
27
28
|
red_glass.take_snapshot
|
28
29
|
driver.quit
|
29
30
|
end
|
30
31
|
|
31
32
|
# Send the page archives to DomReactor.
|
32
33
|
DomReactorRedGlass.auth_token = '12345'
|
33
|
-
DomReactorRedGlass.create_chain_reaction("#{archive_location}/#{test_id}", opts)
|
34
|
+
DomReactorRedGlass.create_chain_reaction(page_url, "#{archive_location}/#{test_id}", opts)
|
34
35
|
```
|
35
36
|
|
36
37
|
# License
|
37
38
|
|
38
|
-
The MIT License - Copyright (c) 2013
|
39
|
+
The MIT License - Copyright (c) 2013 Binary Mechanics
|
data/domreactor-redglass.gemspec
CHANGED
@@ -24,6 +24,6 @@ Gem::Specification.new do |s|
|
|
24
24
|
|
25
25
|
s.add_development_dependency "bundler", "~> 1.3"
|
26
26
|
s.add_development_dependency "rake"
|
27
|
-
s.add_development_dependency "rspec", "~> 2.
|
27
|
+
s.add_development_dependency "rspec", "~> 2.14.0"
|
28
28
|
s.add_development_dependency 'selenium-webdriver'
|
29
29
|
end
|
@@ -31,41 +31,32 @@ module DomReactorRedGlass
|
|
31
31
|
@info ||= create_chain_reaction(@opts)
|
32
32
|
end
|
33
33
|
|
34
|
+
|
34
35
|
def post_archives(archive_location)
|
35
|
-
web_browser_ids = []
|
36
|
-
#TODO: Cache the web prowser for each archive location.
|
37
|
-
Dir.foreach(archive_location) do |file|
|
38
|
-
next if file == '.' or file == '..'
|
39
|
-
path = "#{archive_location}/#{file}"
|
40
|
-
if is_valid_page_archive? path
|
41
|
-
web_browser_ids << get_web_browser_info(parse_json_file("#{path}/metadata.json")[:browser])[:id]
|
42
|
-
end
|
43
|
-
end
|
44
|
-
update_chain_reaction(web_browser_ids: web_browser_ids)
|
45
|
-
dom_gun_reaction = create_dom_gun_reaction
|
46
36
|
Dir.foreach(archive_location) do |file|
|
47
37
|
next if file == '.' or file == '..'
|
48
38
|
path = "#{archive_location}/#{file}"
|
49
39
|
if is_valid_page_archive? path
|
50
40
|
payload = create_payload(path)
|
51
|
-
|
41
|
+
create_dom_gun_reaction(payload)
|
52
42
|
end
|
53
43
|
end
|
54
|
-
start_reaction
|
44
|
+
start_reaction
|
55
45
|
end
|
56
46
|
|
57
|
-
|
47
|
+
private
|
48
|
+
|
49
|
+
def start_reaction
|
58
50
|
params = {
|
59
51
|
auth_token: auth_token,
|
60
52
|
}
|
61
|
-
RestClient.post("#{chain_reaction_url}/
|
53
|
+
RestClient.post("#{chain_reaction_url}/start", params, content_type: 'application/json')
|
62
54
|
end
|
63
55
|
|
64
|
-
def baseline_browser
|
65
|
-
get_web_browser_info(@opts[:baseline_browser])
|
66
|
-
end
|
67
56
|
|
68
|
-
|
57
|
+
def create_dom_gun_reaction(payload)
|
58
|
+
RestClient.post("#{chain_reaction_url}/dom_gun_reactions", payload, content_type: 'application/json')
|
59
|
+
end
|
69
60
|
|
70
61
|
def get_web_browser_info(browser_info={})
|
71
62
|
parameters = {auth_token: auth_token,content_type: 'application/json', accept: :json}.merge(browser_info)
|
@@ -74,8 +65,8 @@ module DomReactorRedGlass
|
|
74
65
|
JSON.parse(response, symbolize_names: true)[:web_browsers].first
|
75
66
|
end
|
76
67
|
|
77
|
-
def
|
78
|
-
|
68
|
+
def baseline_browser
|
69
|
+
get_web_browser_info(@opts[:baseline_browser])
|
79
70
|
end
|
80
71
|
|
81
72
|
def create_chain_reaction(opts)
|
@@ -94,22 +85,13 @@ module DomReactorRedGlass
|
|
94
85
|
JSON.parse(response, symbolize_names: true)[:chain_reaction]
|
95
86
|
end
|
96
87
|
|
97
|
-
def create_dom_gun_reaction
|
98
|
-
payload = {
|
99
|
-
chain_reaction_id: id,
|
100
|
-
auth_token: auth_token,
|
101
|
-
page_url: page_url
|
102
|
-
}
|
103
|
-
dom_gun = RestClient.post("#{chain_reaction_url}/dom_gun_reactions", payload, content_type: 'application/json')
|
104
|
-
JSON.parse(dom_gun, symbolize_names: true)
|
105
|
-
end
|
106
|
-
|
107
88
|
def create_payload(path)
|
108
89
|
meta_data = parse_json_file("#{path}/metadata.json")
|
109
90
|
{
|
110
91
|
auth_token: auth_token,
|
111
92
|
meta_data: meta_data,
|
112
93
|
web_browser_id: get_web_browser_info(meta_data[:browser])[:id],
|
94
|
+
page_url: meta_data[:page_url],
|
113
95
|
dom_elements: File.open("#{path}/dom.json", 'rb') {|f| f.read},
|
114
96
|
page_source: File.open("#{path}/source.html") {|f| f.read},
|
115
97
|
file: File.open("#{path}/screenshot.png")
|
data/spec/chain_reaction_spec.rb
CHANGED
@@ -24,15 +24,16 @@ describe DomReactorRedGlass::ChainReaction do
|
|
24
24
|
|
25
25
|
describe '#post_archives' do
|
26
26
|
before do
|
27
|
-
chain_reaction.stub(:
|
28
|
-
chain_reaction.stub(:
|
29
|
-
with({:name=>"firefox", :version=>"20.0", :platform=>"darwin"}) { {id: 22, browser: 'firefox'} }
|
30
|
-
RestClient.should_receive(:put).exactly(3).times
|
31
|
-
RestClient.should_receive(:post).once
|
32
|
-
end
|
33
|
-
it 'creates a dom gun reaction' do
|
27
|
+
chain_reaction.stub(:create_payload)
|
28
|
+
chain_reaction.stub(:create_dom_gun_reaction)
|
34
29
|
chain_reaction.post_archives("#{SPEC_ROOT}/data/valid_archive")
|
35
30
|
end
|
31
|
+
it 'creates the payload' do
|
32
|
+
expect(chain_reaction).to have_received(:create_payload).twice
|
33
|
+
end
|
34
|
+
it 'creates the dom gun reactions' do
|
35
|
+
expect(chain_reaction).to have_received(:create_dom_gun_reaction).twice
|
36
|
+
end
|
36
37
|
end
|
37
38
|
describe '#id' do
|
38
39
|
it "gets the id from the info" do
|
@@ -1 +1 @@
|
|
1
|
-
{"test_id":1,"time":1369614643,"page_url":"http://www.google.com/","browser":{"name":"firefox","version":"
|
1
|
+
{"test_id":1,"time":1369614643,"page_url":"http://www.google.com/","browser":{"name":"firefox","version":"19.0","platform":"darwin"},"event_sequence":[],"doc_width":1004,"doc_height":1010}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domreactor-redglass
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
requirements:
|
116
116
|
- - ~>
|
117
117
|
- !ruby/object:Gem::Version
|
118
|
-
version: 2.
|
118
|
+
version: 2.14.0
|
119
119
|
type: :development
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
requirements:
|
124
124
|
- - ~>
|
125
125
|
- !ruby/object:Gem::Version
|
126
|
-
version: 2.
|
126
|
+
version: 2.14.0
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
128
|
name: selenium-webdriver
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|