spassky 0.1.44 → 0.1.45

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.
@@ -20,6 +20,7 @@ Feature: Device Timeout
20
20
 
21
21
  Scenario: One device times out
22
22
  Given a connected mobile device "ipad"
23
+ And I have a timeout of 5 seconds
23
24
  When the device disconnects
24
25
  And I run "spassky run --pattern timed-out.html --test timed-out.html --server <host>" with the server host
25
26
  Then the output should contain:
@@ -34,6 +34,10 @@ end
34
34
  Given /^a Wireless Universal Resource FiLe$/ do
35
35
  end
36
36
 
37
+ Given /^I have a timeout of (\d+) seconds?$/ do |timeout|
38
+ ENV["SPASSKY_TIMEOUT"] = timeout
39
+ end
40
+
37
41
  When /^I run "([^"]*)" with the server host$/ do |command_line|
38
42
  run_simple(unescape(command_line.gsub('<host>', "http://#{@uri.host}:#{@uri.port}")), false)
39
43
  end
@@ -83,7 +83,7 @@ module Spassky::Server
83
83
  def get_test_file_contents
84
84
  file_name = params[:splat].join("/")
85
85
  assert_post_back_url = "/test_runs/#{params[:id]}/run/#{params[:random]}/assert"
86
- TestSuiteContainer.new(test_run.contents, idle_url, assert_post_back_url, 60).get_file(file_name)
86
+ TestSuiteContainer.new(test_run.contents, idle_url, assert_post_back_url).get_file(file_name)
87
87
  end
88
88
 
89
89
  def save_test_result
@@ -3,5 +3,6 @@ function Spassky() {
3
3
  var img = document.createElement('img');
4
4
  img.setAttribute('src', '{ASSERT_POST_BACK_URL}?status=' + (status ? 'pass' : 'fail') + '&message=' + escape(message));
5
5
  document.body.appendChild(img);
6
+ window.location = "{IDLE_URL}";
6
7
  }
7
8
  }
@@ -21,7 +21,9 @@ module Spassky::Server
21
21
  private
22
22
 
23
23
  def recent? time
24
- Time.now.to_f - time.to_f < 60
24
+ timeout = 60
25
+ timeout = Integer(ENV["SPASSKY_TIMEOUT"]) if ENV["SPASSKY_TIMEOUT"]
26
+ Time.now.to_f - time.to_f < timeout
25
27
  end
26
28
  end
27
29
  end
@@ -1,10 +1,9 @@
1
1
  module Spassky::Server
2
2
  class TestSuiteContainer
3
- def initialize(contents, next_url_to_redirect_to, assert_post_back_url, seconds)
3
+ def initialize(contents, next_url_to_redirect_to, assert_post_back_url)
4
4
  @contents = contents
5
5
  @next_url_to_redirect_to = next_url_to_redirect_to
6
6
  @assert_post_back_url = assert_post_back_url
7
- @seconds = seconds
8
7
  end
9
8
 
10
9
  def get_file(name)
@@ -15,17 +14,14 @@ module Spassky::Server
15
14
  private
16
15
 
17
16
  def add_helpers_to_html html
18
- html.gsub('</head>', assert_js_script + meta_refresh_tag + '</head>')
17
+ html.gsub('</head>', assert_js_script + '</head>')
19
18
  end
20
19
 
21
20
  def assert_js_script
22
21
  assert_js = File.read(File.join(File.dirname(__FILE__), 'assert.js'))
23
22
  assert_js.gsub!("{ASSERT_POST_BACK_URL}", @assert_post_back_url)
23
+ assert_js.gsub!("{IDLE_URL}", @next_url_to_redirect_to)
24
24
  "<script type=\"text/javascript\">#{assert_js}</script>"
25
25
  end
26
-
27
- def meta_refresh_tag
28
- "<meta http-equiv=\"refresh\" content=\"#{@seconds}; url='#{@next_url_to_redirect_to}'\">"
29
- end
30
26
  end
31
27
  end
@@ -1,3 +1,3 @@
1
1
  module Spassky
2
- VERSION = '0.1.44'
2
+ VERSION = '0.1.45'
3
3
  end
@@ -106,7 +106,7 @@ module Spassky::Server
106
106
  TestRun.stub!(:find).with('123').and_return(test)
107
107
  html_test = mock(:html_test)
108
108
  html_test.stub!(:get_file).and_return("contents")
109
- TestSuiteContainer.should_receive(:new).with({}, "/device/idle/random-string", "/test_runs/123/run/random/assert", 60).and_return html_test
109
+ TestSuiteContainer.should_receive(:new).with({}, "/device/idle/random-string", "/test_runs/123/run/random/assert").and_return html_test
110
110
  get "/test_runs/123/run/random/fake_test.html.file"
111
111
  last_response.body.should == "contents"
112
112
  end
@@ -31,5 +31,16 @@ module Spassky::Server
31
31
  Time.stub!(:now).and_return(now)
32
32
  subject.recently_connected_devices.should == ["b"]
33
33
  end
34
+
35
+ it "supports timeouts set in the environment" do
36
+ now = Time.now
37
+ Time.stub!(:now).and_return(now - 30)
38
+ subject.update_last_connected("a")
39
+ Time.stub!(:now).and_return(now - 29)
40
+ subject.update_last_connected("b")
41
+ Time.stub!(:now).and_return(now)
42
+ ENV["SPASSKY_TIMEOUT"] = "30"
43
+ subject.recently_connected_devices.should == ["b"]
44
+ end
34
45
  end
35
46
  end
@@ -15,31 +15,30 @@ module Spassky::Server
15
15
 
16
16
  context "file name is a file" do
17
17
  it "returns the specified file" do
18
- TestSuiteContainer.new(@test_contents, nil, "", nil).get_file("test_file.js").should == "some javascript"
18
+ TestSuiteContainer.new(@test_contents, "", "").get_file("test_file.js").should == "some javascript"
19
19
  end
20
20
  end
21
21
 
22
22
  context "with a file that is in a subdirectory" do
23
23
  it "returns the file" do
24
- TestSuiteContainer.new(@test_contents, nil, "", nil).get_file("directory/another_directory/filename.txt").should == "file 1 contents"
24
+ TestSuiteContainer.new(@test_contents, "", "").get_file("directory/another_directory/filename.txt").should == "file 1 contents"
25
25
  end
26
26
  end
27
27
 
28
28
  describe "when the test contents includes a </head> tag" do
29
- it "adds a meta-refresh tag to the test contents" do
30
- url = "http://example.org"
31
- seconds = 23
32
- TestSuiteContainer.new(@test_contents, url, "", seconds).get_file("example_test.html").should include "<meta http-equiv=\"refresh\" content=\"#{seconds}; url='#{url}'\"></head>"
33
- end
34
-
35
29
  it "adds the assert.js script to the head" do
36
30
  File.stub!(:read).and_return("assert.js!")
37
- TestSuiteContainer.new(@test_contents, nil, "", nil).get_file("example_test.html").should include "<script type=\"text/javascript\">assert.js!</script>"
31
+ TestSuiteContainer.new(@test_contents, "", "").get_file("example_test.html").should include "<script type=\"text/javascript\">assert.js!</script>"
38
32
  end
39
33
 
40
34
  it "injects the assert post back url into assert.js" do
41
35
  File.stub!(:read).and_return("assert.js! {ASSERT_POST_BACK_URL}")
42
- TestSuiteContainer.new(@test_contents, nil, "http://assert.org", nil).get_file("example_test.html").should include "assert.js! http://assert.org"
36
+ TestSuiteContainer.new(@test_contents, "", "http://assert.org").get_file("example_test.html").should include "assert.js! http://assert.org"
37
+ end
38
+
39
+ it "injects the idle url into assert.js" do
40
+ File.stub!(:read).and_return("assert.js! {IDLE_URL}")
41
+ TestSuiteContainer.new(@test_contents, "http://idle_url.org", "").get_file("example_test.html").should include "assert.js! http://idle_url.org"
43
42
  end
44
43
  end
45
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spassky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.44
4
+ version: 0.1.45
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -11,11 +11,11 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2011-09-30 00:00:00.000000000Z
14
+ date: 2011-10-05 00:00:00.000000000Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rest-client
18
- requirement: &70092751572240 !ruby/object:Gem::Requirement
18
+ requirement: &70238235418160 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ! '>='
@@ -23,10 +23,10 @@ dependencies:
23
23
  version: '0'
24
24
  type: :runtime
25
25
  prerelease: false
26
- version_requirements: *70092751572240
26
+ version_requirements: *70238235418160
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
- requirement: &70092751571700 !ruby/object:Gem::Requirement
29
+ requirement: &70238235417660 !ruby/object:Gem::Requirement
30
30
  none: false
31
31
  requirements:
32
32
  - - ! '>='
@@ -34,10 +34,10 @@ dependencies:
34
34
  version: '0'
35
35
  type: :runtime
36
36
  prerelease: false
37
- version_requirements: *70092751571700
37
+ version_requirements: *70238235417660
38
38
  - !ruby/object:Gem::Dependency
39
39
  name: sinatra
40
- requirement: &70092751571160 !ruby/object:Gem::Requirement
40
+ requirement: &70238235417180 !ruby/object:Gem::Requirement
41
41
  none: false
42
42
  requirements:
43
43
  - - ! '>='
@@ -45,10 +45,10 @@ dependencies:
45
45
  version: '0'
46
46
  type: :runtime
47
47
  prerelease: false
48
- version_requirements: *70092751571160
48
+ version_requirements: *70238235417180
49
49
  - !ruby/object:Gem::Dependency
50
50
  name: rainbow
51
- requirement: &70092751570580 !ruby/object:Gem::Requirement
51
+ requirement: &70238235416640 !ruby/object:Gem::Requirement
52
52
  none: false
53
53
  requirements:
54
54
  - - ! '>='
@@ -56,10 +56,10 @@ dependencies:
56
56
  version: '0'
57
57
  type: :runtime
58
58
  prerelease: false
59
- version_requirements: *70092751570580
59
+ version_requirements: *70238235416640
60
60
  - !ruby/object:Gem::Dependency
61
61
  name: wurfl-lite
62
- requirement: &70092751570020 !ruby/object:Gem::Requirement
62
+ requirement: &70238235416100 !ruby/object:Gem::Requirement
63
63
  none: false
64
64
  requirements:
65
65
  - - ! '>='
@@ -67,10 +67,10 @@ dependencies:
67
67
  version: '0'
68
68
  type: :runtime
69
69
  prerelease: false
70
- version_requirements: *70092751570020
70
+ version_requirements: *70238235416100
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: trollop
73
- requirement: &70092751569380 !ruby/object:Gem::Requirement
73
+ requirement: &70238235415520 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ! '>='
@@ -78,10 +78,10 @@ dependencies:
78
78
  version: '0'
79
79
  type: :runtime
80
80
  prerelease: false
81
- version_requirements: *70092751569380
81
+ version_requirements: *70238235415520
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: rake
84
- requirement: &70092751568760 !ruby/object:Gem::Requirement
84
+ requirement: &70238235414920 !ruby/object:Gem::Requirement
85
85
  none: false
86
86
  requirements:
87
87
  - - ! '>='
@@ -89,10 +89,10 @@ dependencies:
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
- version_requirements: *70092751568760
92
+ version_requirements: *70238235414920
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: rspec
95
- requirement: &70092751567920 !ruby/object:Gem::Requirement
95
+ requirement: &70238235414220 !ruby/object:Gem::Requirement
96
96
  none: false
97
97
  requirements:
98
98
  - - ! '>='
@@ -100,10 +100,10 @@ dependencies:
100
100
  version: '0'
101
101
  type: :development
102
102
  prerelease: false
103
- version_requirements: *70092751567920
103
+ version_requirements: *70238235414220
104
104
  - !ruby/object:Gem::Dependency
105
105
  name: cucumber
106
- requirement: &70092751566700 !ruby/object:Gem::Requirement
106
+ requirement: &70238235413100 !ruby/object:Gem::Requirement
107
107
  none: false
108
108
  requirements:
109
109
  - - ! '>='
@@ -111,10 +111,10 @@ dependencies:
111
111
  version: '0'
112
112
  type: :development
113
113
  prerelease: false
114
- version_requirements: *70092751566700
114
+ version_requirements: *70238235413100
115
115
  - !ruby/object:Gem::Dependency
116
116
  name: capybara
117
- requirement: &70092751554700 !ruby/object:Gem::Requirement
117
+ requirement: &70238235412660 !ruby/object:Gem::Requirement
118
118
  none: false
119
119
  requirements:
120
120
  - - ! '>='
@@ -122,10 +122,10 @@ dependencies:
122
122
  version: '0'
123
123
  type: :development
124
124
  prerelease: false
125
- version_requirements: *70092751554700
125
+ version_requirements: *70238235412660
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: aruba
128
- requirement: &70092751554260 !ruby/object:Gem::Requirement
128
+ requirement: &70238235412100 !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ! '>='
@@ -133,10 +133,10 @@ dependencies:
133
133
  version: '0'
134
134
  type: :development
135
135
  prerelease: false
136
- version_requirements: *70092751554260
136
+ version_requirements: *70238235412100
137
137
  - !ruby/object:Gem::Dependency
138
138
  name: fakefs
139
- requirement: &70092751553660 !ruby/object:Gem::Requirement
139
+ requirement: &70238235407100 !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
142
142
  - - ! '>='
@@ -144,10 +144,10 @@ dependencies:
144
144
  version: '0'
145
145
  type: :development
146
146
  prerelease: false
147
- version_requirements: *70092751553660
147
+ version_requirements: *70238235407100
148
148
  - !ruby/object:Gem::Dependency
149
149
  name: factory_girl
150
- requirement: &70092751552940 !ruby/object:Gem::Requirement
150
+ requirement: &70238235406500 !ruby/object:Gem::Requirement
151
151
  none: false
152
152
  requirements:
153
153
  - - ! '>='
@@ -155,7 +155,7 @@ dependencies:
155
155
  version: '0'
156
156
  type: :development
157
157
  prerelease: false
158
- version_requirements: *70092751552940
158
+ version_requirements: *70238235406500
159
159
  description: ''
160
160
  email:
161
161
  - andrew.vos@gmail.com