hanoi 0.0.2 → 0.0.3
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/MIT-LICENSE +1 -1
- data/README.md +5 -1
- data/Rakefile +1 -1
- data/hanoi.gemspec +2 -2
- data/lib/hanoi/browser.rb +15 -4
- data/lib/hanoi/browsers/chrome.rb +10 -2
- data/lib/hanoi/browsers/internet_explorer.rb +5 -1
- data/lib/hanoi/browsers/konqueror.rb +0 -8
- data/lib/hanoi/browsers/webkit.rb +4 -0
- data/lib/hanoi/javascript_test_task.rb +2 -2
- data/spec/browser_spec.rb +46 -2
- data/spec/browsers/chrome_spec.rb +11 -1
- data/spec/browsers/internet_explorer_spec.rb +10 -3
- data/spec/browsers/webkit_spec.rb +9 -0
- metadata +2 -2
data/MIT-LICENSE
CHANGED
data/README.md
CHANGED
@@ -105,6 +105,10 @@ You have probably noticed that `file_2_fixtures.html` is missing, this because *
|
|
105
105
|
|
106
106
|
To solve the annoying start page issue run: `defaults write org.webkit.nightly.WebKit StartPageDisabled -bool YES`
|
107
107
|
|
108
|
+
#### Webkit on Windows
|
109
|
+
|
110
|
+
Webkit hasn't a default path on Windows, please put under `C:\Program Files`, or specify the `WEBKIT_HOME` env var.
|
111
|
+
|
108
112
|
## Acknowledgements
|
109
113
|
|
110
114
|
The Ruby libraries of Hanoi are a customization of the `jsblib.rb`, courtesy of the [Prototype](http://prototypejs.org) team.
|
@@ -117,4 +121,4 @@ Hanoi runs a customized version of `QUnit`, courtesy of the [jQuery](http://jque
|
|
117
121
|
|
118
122
|
## Copyright
|
119
123
|
|
120
|
-
(c) 2009 Luca Guidi - [http://lucaguidi.com](http://lucaguidi.com), released under the MIT license
|
124
|
+
(c) 2009 - 2010 Luca Guidi - [http://lucaguidi.com](http://lucaguidi.com), released under the MIT license
|
data/Rakefile
CHANGED
data/hanoi.gemspec
CHANGED
data/lib/hanoi/browser.rb
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
class Browser
|
2
2
|
def supported?; true; end
|
3
|
-
def setup
|
4
|
-
def
|
5
|
-
def teardown ; end
|
3
|
+
def setup; end
|
4
|
+
def teardown; end
|
6
5
|
|
7
6
|
def host
|
8
7
|
require 'rbconfig'
|
@@ -14,13 +13,25 @@ class Browser
|
|
14
13
|
end
|
15
14
|
|
16
15
|
def windows?
|
17
|
-
host
|
16
|
+
/mswin|mingw/.match host
|
18
17
|
end
|
19
18
|
|
20
19
|
def linux?
|
21
20
|
host.include?('linux')
|
22
21
|
end
|
23
22
|
|
23
|
+
def installed?
|
24
|
+
if linux?
|
25
|
+
Kernel.system "which #{name}"
|
26
|
+
else
|
27
|
+
File.exist? path
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def runnable?
|
32
|
+
supported? && installed?
|
33
|
+
end
|
34
|
+
|
24
35
|
def visit(url)
|
25
36
|
if macos?
|
26
37
|
system("open -g -a #{path} '#{url}'")
|
@@ -2,8 +2,8 @@ class Chrome < Browser
|
|
2
2
|
def initialize(path = nil)
|
3
3
|
@path = path || File.join(
|
4
4
|
ENV['UserPath'] || ENV['UserProfile'] || "C:/Documents and Settings/Administrator",
|
5
|
-
"
|
6
|
-
"
|
5
|
+
"AppData",
|
6
|
+
"Local",
|
7
7
|
"Google",
|
8
8
|
"Chrome",
|
9
9
|
"Application",
|
@@ -15,6 +15,14 @@ class Chrome < Browser
|
|
15
15
|
windows? || macos?
|
16
16
|
end
|
17
17
|
|
18
|
+
def installed?
|
19
|
+
if macos?
|
20
|
+
File.exist?("/Applications/#{name}.app")
|
21
|
+
else
|
22
|
+
super
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
18
26
|
def name
|
19
27
|
"Google Chrome"
|
20
28
|
end
|
@@ -29,7 +29,7 @@ class JavaScriptTestTask < ::Rake::TaskLib
|
|
29
29
|
|
30
30
|
# run all combinations of browsers and tests
|
31
31
|
@browsers.each do |browser|
|
32
|
-
if browser.
|
32
|
+
if browser.runnable?
|
33
33
|
t0 = Time.now
|
34
34
|
test_suite_results = TestSuiteResults.new
|
35
35
|
|
@@ -47,7 +47,7 @@ class JavaScriptTestTask < ::Rake::TaskLib
|
|
47
47
|
print test_suite_results
|
48
48
|
browser.teardown
|
49
49
|
else
|
50
|
-
puts "\nSkipping #{browser}, not supported on this OS."
|
50
|
+
puts "\nSkipping #{browser}, not supported on this OS or not installed."
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
data/spec/browser_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe "Browser" do
|
|
13
13
|
method = case @browser.host
|
14
14
|
when /darwin/
|
15
15
|
:macos?
|
16
|
-
when /mswin/
|
16
|
+
when /mswin/, /mingw/
|
17
17
|
:windows?
|
18
18
|
when /linux/
|
19
19
|
:linux?
|
@@ -21,4 +21,48 @@ describe "Browser" do
|
|
21
21
|
|
22
22
|
@browser.send(method).should be_true
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
|
+
describe "Cross OS Browser", :shared => true do
|
26
|
+
it "should check if installed" do
|
27
|
+
File.should_receive(:exist?).and_return true
|
28
|
+
@browser.should be_installed
|
29
|
+
|
30
|
+
File.should_receive(:exist?).and_return false
|
31
|
+
@browser.should_not be_installed
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should check if runnable" do
|
35
|
+
File.should_receive(:exist?).and_return true
|
36
|
+
@browser.should be_runnable
|
37
|
+
|
38
|
+
File.should_receive(:exist?).and_return false
|
39
|
+
@browser.should_not be_runnable
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
describe "Mac Os X" do
|
44
|
+
it_should_behave_like "Cross OS Browser"
|
45
|
+
end if macos?
|
46
|
+
|
47
|
+
describe "Windows" do
|
48
|
+
it_should_behave_like "Cross OS Browser"
|
49
|
+
end if windows?
|
50
|
+
|
51
|
+
describe "Linux" do
|
52
|
+
it "should check if installed" do
|
53
|
+
Kernel.should_receive(:system).with("which browser").and_return true
|
54
|
+
@browser.should be_installed
|
55
|
+
|
56
|
+
Kernel.should_receive(:system).with("which browser").and_return false
|
57
|
+
@browser.should_not be_installed
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should check if runnable" do
|
61
|
+
Kernel.should_receive(:system).with("which browser").and_return true
|
62
|
+
@browser.should be_runnable
|
63
|
+
|
64
|
+
Kernel.should_receive(:system).with("which browser").and_return false
|
65
|
+
@browser.should_not be_runnable
|
66
|
+
end
|
67
|
+
end if linux?
|
68
|
+
end
|
@@ -34,7 +34,17 @@ describe "Chrome" do
|
|
34
34
|
it_should_behave_like "Cross OS Chrome"
|
35
35
|
|
36
36
|
it "should have a path" do
|
37
|
-
|
37
|
+
expected = File.join(
|
38
|
+
ENV['UserPath'] || ENV['UserProfile'] || "C:/Documents and Settings/Administrator",
|
39
|
+
"AppData",
|
40
|
+
"Local",
|
41
|
+
"Google",
|
42
|
+
"Chrome",
|
43
|
+
"Application",
|
44
|
+
"chrome.exe"
|
45
|
+
)
|
46
|
+
|
47
|
+
@browser.path.should == expected
|
38
48
|
end
|
39
49
|
|
40
50
|
it "should visit a given url" do
|
@@ -3,6 +3,7 @@ require File.join(File.dirname(__FILE__), "/../spec_helper")
|
|
3
3
|
describe "InternetExplorer" do
|
4
4
|
before :each do
|
5
5
|
@browser = InternetExplorer.new
|
6
|
+
@url = "http://localhost"
|
6
7
|
end
|
7
8
|
|
8
9
|
describe "Cross OS Internet Explorer", :shared => true do
|
@@ -28,13 +29,19 @@ describe "InternetExplorer" do
|
|
28
29
|
@browser.should be_supported
|
29
30
|
end
|
30
31
|
|
32
|
+
it "should be runnable" do
|
33
|
+
@browser.should be_runnable
|
34
|
+
end
|
35
|
+
|
31
36
|
it "should setup" do
|
32
|
-
|
33
|
-
# Kernel.expects(:require).with('win32ole')
|
37
|
+
Kernel.expects(:require).with('win32ole')
|
34
38
|
lambda { @browser.setup }.should_not raise_error
|
35
39
|
end
|
36
40
|
|
37
|
-
it "should visit a given url"
|
41
|
+
it "should visit a given url" do
|
42
|
+
Kernel.expects(:system).with("#{@browser.path} #{@url}")
|
43
|
+
@browser.visit(@url)
|
44
|
+
end
|
38
45
|
end if windows?
|
39
46
|
|
40
47
|
describe "Linux" do
|
@@ -23,6 +23,10 @@ describe "Webkit" do
|
|
23
23
|
@browser.setup
|
24
24
|
end
|
25
25
|
|
26
|
+
it "should have a path" do
|
27
|
+
@browser.path.should == "/Applications/Webkit.app"
|
28
|
+
end
|
29
|
+
|
26
30
|
it "should visit a given url" do
|
27
31
|
url = "http://localhost"
|
28
32
|
@browser.expects(:applescript).with(%(tell application "#{@browser.name}" to set URL of front document to "#{url}"))
|
@@ -42,6 +46,11 @@ describe "Webkit" do
|
|
42
46
|
@browser.setup
|
43
47
|
end
|
44
48
|
|
49
|
+
it "should have a path" do
|
50
|
+
expected = File.join(ENV['WEBKIT_HOME'] || ENV['ProgramFiles'] || 'C:\Program Files', 'Webkit', 'webkit.exe')
|
51
|
+
@browser.path.should == expected
|
52
|
+
end
|
53
|
+
|
45
54
|
it "should visit a given url" do
|
46
55
|
Kernel.expects(:system).with("#{@browser.path} #{@url}")
|
47
56
|
@browser.visit(@url)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hanoi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Luca Guidi
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-03 00:00:00 +01:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|