zfben_hanoi 0.0.1 → 0.0.2

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