zfben_hanoi 0.0.1 → 0.0.2

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.
@@ -6,7 +6,7 @@ raise "Unknown path '#{path}'" unless File.directory?(path)
6
6
  templates_path = File.expand_path(File.dirname(__FILE__) + "/../templates")
7
7
 
8
8
  # Rakefile
9
- File.open(File.join(path, "Rakefile"), "a") { |f| f.write(File.readlines(File.join(templates_path, "fresh_rakefile")))}
9
+ File.open(File.join(path, "Rakefile"), "a") { |f| f.write(File.read(File.join(templates_path, "fresh_rakefile")))}
10
10
 
11
11
  # JavaScript test directory
12
12
  name = File.directory?(File.join(path, "spec")) ? "spec" : "test"
File without changes
@@ -4,7 +4,7 @@ class Firefox < Browser
4
4
  end
5
5
 
6
6
  def teardown
7
- if macos?
7
+ if macos? || linux?
8
8
  system("killall firefox-bin")
9
9
  end
10
10
  end
@@ -1,5 +1,5 @@
1
1
  class JavaScriptTestTask < ::Rake::TaskLib
2
- BROWSERS = %w( chrome safari firefox ie konqueror opera webkit ).freeze
2
+ BROWSERS = %w( firefox ).freeze
3
3
  attr_reader :sources_directory
4
4
 
5
5
  def initialize(name = :test)
@@ -45,7 +45,7 @@ class JavaScriptTestTask < ::Rake::TaskLib
45
45
 
46
46
  print "\nFinished in #{Time.now - t0} seconds."
47
47
  print @test_suite_results
48
- browser.teardown
48
+ browser.teardown unless @test_suite_results.failed?
49
49
  else
50
50
  puts "\nSkipping #{browser}, not supported on this OS or not installed."
51
51
  end
@@ -55,7 +55,7 @@ class JavaScriptTestTask < ::Rake::TaskLib
55
55
  @server.shutdown
56
56
  t.join
57
57
 
58
- exit 1 if @test_suite_results.failure? || @test_suite_results.error?
58
+ exit 1 if @test_suite_results.failed?
59
59
  end
60
60
  end
61
61
 
@@ -90,20 +90,8 @@ class JavaScriptTestTask < ::Rake::TaskLib
90
90
  def browser(browser)
91
91
  browser =
92
92
  case(browser)
93
- when :chrome
94
- Chrome.new
95
93
  when :firefox
96
94
  Firefox.new
97
- when :safari
98
- Safari.new
99
- when :ie
100
- InternetExplorer.new
101
- when :konqueror
102
- Konqueror.new
103
- when :opera
104
- Opera.new
105
- when :webkit
106
- Webkit.new
107
95
  else
108
96
  browser
109
97
  end
File without changes
@@ -0,0 +1,18 @@
1
+ class TestResults
2
+ attr_reader :total, :passed, :failed, :filename
3
+ def initialize(query, filename)
4
+ @total = query['total'].to_i
5
+ @passed = query['passed'].to_i
6
+ @failed = query['failed'].to_i
7
+ @filename = filename
8
+ end
9
+
10
+ def failed?
11
+ @failed > 0
12
+ end
13
+
14
+ def to_s
15
+ return "F" if failed?
16
+ "."
17
+ end
18
+ end
@@ -0,0 +1,29 @@
1
+ class TestSuiteResults
2
+ def initialize
3
+ @total = 0
4
+ @passed = 0
5
+ @failed = 0
6
+ @failed_files = []
7
+ end
8
+
9
+ def <<(result)
10
+ @total += result.total
11
+ @passed += result.passed
12
+ @failed += result.failed
13
+ @filed_files.push(result.filename) if result.failed?
14
+ end
15
+
16
+ def failed?
17
+ @failed > 0
18
+ end
19
+
20
+ def to_s
21
+ str = ""
22
+ str << "\n Filed: #{@failed_files.join(', ')}" if failed?
23
+ "#{str}\n#{summary}\n\n"
24
+ end
25
+
26
+ def summary
27
+ "#{@total} tests, #{@passed} passed, #{@failed} failed."
28
+ end
29
+ end
File without changes
data/lib/zfben_hanoi.rb CHANGED
@@ -1,16 +1,8 @@
1
- require "erb"
2
- require "webrick"
3
- require "rake/tasklib"
4
- require "hanoi/webrick"
5
- require "hanoi/browser"
6
- require "hanoi/browsers/chrome"
7
- require "hanoi/browsers/firefox"
8
- require "hanoi/browsers/internet_explorer"
9
- require "hanoi/browsers/konqueror"
10
- require "hanoi/browsers/webkit"
11
- require "hanoi/browsers/safari"
12
- require "hanoi/browsers/opera"
13
- require "hanoi/test_case"
14
- require "hanoi/test_results"
15
- require "hanoi/test_suite_results"
16
- require "hanoi/javascript_test_task"
1
+ require 'erb'
2
+ require 'webrick'
3
+ require 'rake/tasklib'
4
+
5
+ path = File.realpath(File.join(File.dirname(__FILE__), 'zfben_hanoi'))
6
+ ['webrick.rb', 'browser.rb', 'browsers/firefox.rb', 'test_case.rb', 'test_results.rb', 'test_suite_results.rb', 'javascript_test_task.rb'].each do |f|
7
+ require File.join(path, f)
8
+ end
@@ -2,11 +2,9 @@ _done = QUnit.done;
2
2
  if(QUnit.urlParams.resultsURL){
3
3
  QUnit.done = function(result){
4
4
  $.get(QUnit.urlParams.resultsURL, {
5
- modules: result.total,
6
- tests: result.total,
7
- assertions: result.total,
8
- failures: result.failed,
9
- errors: result.failed
5
+ total: result.total,
6
+ passed: result.passed,
7
+ failed: result.failed
10
8
  });
11
9
  _done(arguments[0]);
12
10
  }
@@ -1,5 +1,5 @@
1
- require "rubygems"
2
- require "hanoi"
1
+ require 'rubygems'
2
+ require 'zfben_hanoi'
3
3
 
4
4
  namespace :test do
5
5
  desc "Runs all the JavaScript tests and collects the results"
data/zfben_hanoi.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "zfben_hanoi"
6
- s.version = '0.0.1'
6
+ s.version = '0.0.2'
7
7
  s.authors = ["Ben"]
8
8
  s.email = ["ben@zfben.com"]
9
9
  s.homepage = "https://github.com/benz303/zfben_hanoi"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zfben_hanoi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -15,7 +15,7 @@ description: ''
15
15
  email:
16
16
  - ben@zfben.com
17
17
  executables:
18
- - hanoi
18
+ - zfben_hanoi
19
19
  extensions: []
20
20
  extra_rdoc_files: []
21
21
  files:
@@ -24,21 +24,15 @@ files:
24
24
  - MIT-LICENSE
25
25
  - README.md
26
26
  - Rakefile
27
- - bin/hanoi
28
- - lib/hanoi/browser.rb
29
- - lib/hanoi/browsers/chrome.rb
30
- - lib/hanoi/browsers/firefox.rb
31
- - lib/hanoi/browsers/internet_explorer.rb
32
- - lib/hanoi/browsers/konqueror.rb
33
- - lib/hanoi/browsers/opera.rb
34
- - lib/hanoi/browsers/safari.rb
35
- - lib/hanoi/browsers/webkit.rb
36
- - lib/hanoi/javascript_test_task.rb
37
- - lib/hanoi/test_case.rb
38
- - lib/hanoi/test_results.rb
39
- - lib/hanoi/test_suite_results.rb
40
- - lib/hanoi/webrick.rb
27
+ - bin/zfben_hanoi
41
28
  - lib/zfben_hanoi.rb
29
+ - lib/zfben_hanoi/browser.rb
30
+ - lib/zfben_hanoi/browsers/firefox.rb
31
+ - lib/zfben_hanoi/javascript_test_task.rb
32
+ - lib/zfben_hanoi/test_case.rb
33
+ - lib/zfben_hanoi/test_results.rb
34
+ - lib/zfben_hanoi/test_suite_results.rb
35
+ - lib/zfben_hanoi/webrick.rb
42
36
  - spec/browser_spec.rb
43
37
  - spec/browsers/chrome_spec.rb
44
38
  - spec/browsers/firefox_spec.rb
@@ -1,35 +0,0 @@
1
- class Chrome < Browser
2
- def initialize(path = nil)
3
- @path = path || File.join(
4
- ENV['UserPath'] || ENV['UserProfile'] || "C:/Documents and Settings/Administrator",
5
- "AppData",
6
- "Local",
7
- "Google",
8
- "Chrome",
9
- "Application",
10
- "chrome.exe"
11
- )
12
- end
13
-
14
- def supported?
15
- windows? || macos?
16
- end
17
-
18
- def installed?
19
- if macos?
20
- File.exist?("/Applications/#{name}.app")
21
- else
22
- super
23
- end
24
- end
25
-
26
- def name
27
- "Google Chrome"
28
- end
29
-
30
- def teardown
31
- if macos?
32
- system("killall #{escaped_name}")
33
- end
34
- end
35
- end
@@ -1,26 +0,0 @@
1
- class InternetExplorer < Browser
2
- def setup
3
- require 'win32ole' if windows?
4
- end
5
-
6
- def supported?
7
- windows?
8
- end
9
-
10
- def runnable?
11
- supported?
12
- end
13
-
14
- def visit(url)
15
- if windows?
16
- ie = WIN32OLE.new('InternetExplorer.Application')
17
- ie.visible = true
18
- ie.Navigate(url)
19
- sleep 0.01 while ie.Busy || ie.ReadyState != 4
20
- end
21
- end
22
-
23
- def name
24
- "Internet Explorer"
25
- end
26
- end
@@ -1,29 +0,0 @@
1
- class Konqueror < Browser
2
- @@config_dir = File.join((ENV['HOME'] || ''), '.kde', 'share', 'config')
3
- @@global_config = File.join(@@config_dir, 'kdeglobals')
4
- @@konqueror_config = File.join(@@config_dir, 'konquerorrc')
5
-
6
- def supported?
7
- linux?
8
- end
9
-
10
- # Forces KDE's default browser to be Konqueror during the tests, and forces
11
- # Konqueror to open external URL requests in new tabs instead of a new
12
- # window.
13
- def setup
14
- cd @@config_dir, :verbose => false do
15
- copy @@global_config, "#{@@global_config}.bak", :preserve => true, :verbose => false
16
- copy @@konqueror_config, "#{@@konqueror_config}.bak", :preserve => true, :verbose => false
17
- # Too lazy to write it in Ruby... Is sed dependency so bad?
18
- system "sed -ri /^BrowserApplication=/d '#{@@global_config}'"
19
- system "sed -ri /^KonquerorTabforExternalURL=/s:false:true: '#{@@konqueror_config}'"
20
- end
21
- end
22
-
23
- def teardown
24
- cd @@config_dir, :verbose => false do
25
- copy "#{@@global_config}.bak", @@global_config, :preserve => true, :verbose => false
26
- copy "#{@@konqueror_config}.bak", @@konqueror_config, :preserve => true, :verbose => false
27
- end
28
- end
29
- end
@@ -1,17 +0,0 @@
1
- class Opera < Browser
2
- def initialize(path = 'c:\Program Files\Opera\Opera.exe')
3
- @path = path
4
- end
5
-
6
- def setup
7
- if windows?
8
- puts %{
9
- MAJOR ANNOYANCE on Windows.
10
- You have to shut down Opera manually after each test
11
- for the script to proceed.
12
- Any suggestions on fixing this is GREATLY appreciated!
13
- Thank you for your understanding.
14
- }
15
- end
16
- end
17
- end
@@ -1,5 +0,0 @@
1
- class Safari < Webkit
2
- def initialize(path = File.join(ENV['ProgramFiles'] || 'c:\Program Files', '\Safari\Safari.exe'))
3
- @path = path
4
- end
5
- end
@@ -1,35 +0,0 @@
1
- class Webkit < Browser
2
- def initialize(path = File.join(ENV['WEBKIT_HOME'] || ENV['ProgramFiles'] || 'C:\Program Files', 'Webkit', 'webkit.exe'))
3
- @path = path
4
- end
5
-
6
- def supported?
7
- macos? || windows?
8
- end
9
-
10
- def setup
11
- applescript(%(tell application "#{name}" to make new document)) if macos?
12
- end
13
-
14
- def visit(url)
15
- if macos?
16
- applescript(%(tell application "#{name}" to set URL of front document to "#{url}"))
17
- elsif windows?
18
- system("#{path} #{url}")
19
- end
20
- end
21
-
22
- def teardown
23
- #applescript('tell application "Safari" to close front document')
24
-
25
- if macos?
26
- system("killall #{escaped_name}")
27
- end
28
- end
29
-
30
- private
31
- def applescript(script)
32
- raise "Can't run AppleScript on #{host}" unless macos?
33
- system "osascript -e '#{script}' 2>&1 >/dev/null"
34
- end
35
- end
@@ -1,25 +0,0 @@
1
- class TestResults
2
- attr_reader :modules, :tests, :assertions, :failures, :errors, :filename
3
- def initialize(query, filename)
4
- @modules = query['modules'].to_i
5
- @tests = query['tests'].to_i
6
- @assertions = query['assertions'].to_i
7
- @failures = query['failures'].to_i
8
- @errors = query['errors'].to_i
9
- @filename = filename
10
- end
11
-
12
- def error?
13
- @errors > 0
14
- end
15
-
16
- def failure?
17
- @failures > 0
18
- end
19
-
20
- def to_s
21
- return "E" if error?
22
- return "F" if failure?
23
- "."
24
- end
25
- end
@@ -1,40 +0,0 @@
1
- class TestSuiteResults
2
- def initialize
3
- @modules = 0
4
- @tests = 0
5
- @assertions = 0
6
- @failures = 0
7
- @errors = 0
8
- @error_files = []
9
- @failure_files = []
10
- end
11
-
12
- def <<(result)
13
- @modules += result.modules
14
- @tests += result.tests
15
- @assertions += result.assertions
16
- @failures += result.failures
17
- @errors += result.errors
18
- @error_files.push(result.filename) if result.error?
19
- @failure_files.push(result.filename) if result.failure?
20
- end
21
-
22
- def error?
23
- @errors > 0
24
- end
25
-
26
- def failure?
27
- @failures > 0
28
- end
29
-
30
- def to_s
31
- str = ""
32
- str << "\n Failures: #{@failure_files.join(', ')}" if failure?
33
- str << "\n Errors: #{@error_files.join(', ')}" if error?
34
- "#{str}\n#{summary}\n\n"
35
- end
36
-
37
- def summary
38
- "#{@modules} modules, #{@tests} tests, #{@assertions} assertions, #{@failures} failures, #{@errors} errors."
39
- end
40
- end