qunited 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>QUnit Test Suite</title>
5
+ <%= asset_css_tag 'qunit.css' %>
6
+ </head>
7
+ <body>
8
+ <h1 id="qunit-header">QUnit Test Suite</h1>
9
+ <h2 id="qunit-banner"></h2>
10
+ <div id="qunit-testrunner-toolbar"></div>
11
+ <h2 id="qunit-userAgent"></h2>
12
+ <ol id="qunit-tests"></ol>
13
+ </body>
14
+ <%= asset_script_tag 'qunit.js' %>
15
+
16
+ <% source_files.each do |file| %>
17
+ <%= source_script_tag file %>
18
+ <% end %>
19
+
20
+ <% test_files.each do |file| %>
21
+ <%= test_script_tag file %>
22
+ <% end %>
23
+
24
+ </html>
@@ -0,0 +1,81 @@
1
+ require 'webrick'
2
+ require 'erb'
3
+ require 'pathname'
4
+
5
+ module QUnited
6
+ class Server
7
+ DEFAULT_PORT = 3040
8
+
9
+ ASSETS_PATH = File.expand_path('../server', __FILE__)
10
+
11
+ SOURCE_FILE_PREFIX = 'qunited-source-file'
12
+ TEST_FILE_PREFIX = 'qunited-test-file'
13
+
14
+ QUNITED_ASSET_FILE_PREFIX = 'qunited-asset'
15
+
16
+ attr_accessor :source_files, :test_files
17
+
18
+ def initialize(opts={})
19
+ @source_files, @test_files = opts[:source_files], opts[:test_files]
20
+
21
+ server_options = {
22
+ :Port => opts[:port] || DEFAULT_PORT
23
+ }
24
+
25
+ @server = ::WEBrick::HTTPServer.new(server_options)
26
+
27
+ @server.mount_proc '/' do |request, response|
28
+ response.status = 200
29
+
30
+ case request.path
31
+ when /^\/#{SOURCE_FILE_PREFIX}\/(.*)/, /^\/#{TEST_FILE_PREFIX}\/(.*)/
32
+ response['Content-Type'] = 'application/javascript'
33
+ response.body = IO.read($1)
34
+ when /^\/#{QUNITED_ASSET_FILE_PREFIX}\/(.*)/
35
+ filename = $1
36
+ response['Content-Type'] = (filename =~ /\.js$/) ? 'application/javascript' : 'text/css'
37
+ puts "HUH? #{filename}"
38
+ response.body = IO.read(asset_path filename)
39
+ else
40
+ response['Content-Type'] = 'text/html'
41
+ test_suite_template = ::ERB.new(IO.read(asset_path 'test_suite.html.erb'))
42
+ response.body = test_suite_template.result(binding)
43
+ end
44
+ end
45
+
46
+ ['INT', 'TERM'].each do |signal|
47
+ trap(signal) { @server.shutdown }
48
+ end
49
+ end
50
+
51
+ def start
52
+ @server.start
53
+ end
54
+
55
+ private
56
+
57
+ def asset_path(filename)
58
+ File.join(ASSETS_PATH, filename)
59
+ end
60
+
61
+ def source_script_tag(file_path)
62
+ script_tag "#{SOURCE_FILE_PREFIX}/#{file_path}"
63
+ end
64
+
65
+ def test_script_tag(file_path)
66
+ script_tag "#{TEST_FILE_PREFIX}/#{file_path}"
67
+ end
68
+
69
+ def asset_script_tag(filename)
70
+ script_tag "#{QUNITED_ASSET_FILE_PREFIX}/#{filename}"
71
+ end
72
+
73
+ def asset_css_tag(filename)
74
+ %{<link rel="stylesheet" type="text/css" href="#{QUNITED_ASSET_FILE_PREFIX}/#{filename}">}
75
+ end
76
+
77
+ def script_tag(src)
78
+ %{<script type="text/javascript" src="#{src}"></script>}
79
+ end
80
+ end
81
+ end
@@ -1,3 +1,3 @@
1
1
  module QUnited
2
- VERSION = "0.2.1"
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/qunited.rb CHANGED
@@ -2,6 +2,7 @@ require 'qunited/version'
2
2
  require 'qunited/results'
3
3
  require 'qunited/driver'
4
4
  require 'qunited/runner'
5
+ require 'qunited/server'
5
6
  require 'qunited/application'
6
7
 
7
8
  module QUnited
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qunited
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Aaron Royer
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-12-16 00:00:00 Z
18
+ date: 2012-12-17 00:00:00 Z
19
19
  dependencies: []
20
20
 
21
21
  description: QUnited runs headless QUnit tests as part of your normal build
@@ -50,6 +50,10 @@ files:
50
50
  - lib/qunited/rake_task.rb
51
51
  - lib/qunited/results.rb
52
52
  - lib/qunited/runner.rb
53
+ - lib/qunited/server.rb
54
+ - lib/qunited/server/qunit.css
55
+ - lib/qunited/server/qunit.js
56
+ - lib/qunited/server/test_suite.html.erb
53
57
  - lib/qunited/version.rb
54
58
  - qunited.gemspec
55
59
  - test/fixtures/basic_project/app/assets/javascripts/application.js