bigpipe-rails 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.
Files changed (78) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +20 -0
  4. data/Gemfile.lock +160 -0
  5. data/Guardfile +21 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +0 -0
  8. data/README.rdoc +19 -0
  9. data/Rakefile +49 -0
  10. data/VERSION +1 -0
  11. data/assets/bigpipe.coffee +150 -0
  12. data/assets/bigpipe.js +164 -0
  13. data/bigpipe-rails.gemspec +153 -0
  14. data/lib/bigpipe_rails/helper.rb +36 -0
  15. data/lib/bigpipe_rails.rb +13 -0
  16. data/lib/engines.rb +16 -0
  17. data/qunit/.DS_Store +0 -0
  18. data/qunit/qunit.css +227 -0
  19. data/qunit/qunit.js +1450 -0
  20. data/qunit/tests.html +302 -0
  21. data/spec/dummy_app/.gitignore +5 -0
  22. data/spec/dummy_app/Gemfile +19 -0
  23. data/spec/dummy_app/Gemfile.lock +143 -0
  24. data/spec/dummy_app/README +261 -0
  25. data/spec/dummy_app/Rakefile +7 -0
  26. data/spec/dummy_app/app/assets/images/rails.png +0 -0
  27. data/spec/dummy_app/app/assets/javascripts/application.js +5 -0
  28. data/spec/dummy_app/app/assets/stylesheets/application.css +7 -0
  29. data/spec/dummy_app/app/controllers/application_controller.rb +3 -0
  30. data/spec/dummy_app/app/controllers/test_controller.rb +8 -0
  31. data/spec/dummy_app/app/helpers/application_helper.rb +2 -0
  32. data/spec/dummy_app/app/mailers/.gitkeep +0 -0
  33. data/spec/dummy_app/app/models/.gitkeep +0 -0
  34. data/spec/dummy_app/app/views/layouts/application.html.erb +18 -0
  35. data/spec/dummy_app/app/views/test/test.html.erb +3 -0
  36. data/spec/dummy_app/app/views/test/test_with_exception.html.erb +7 -0
  37. data/spec/dummy_app/config/application.rb +47 -0
  38. data/spec/dummy_app/config/boot.rb +6 -0
  39. data/spec/dummy_app/config/database.yml +25 -0
  40. data/spec/dummy_app/config/environment.rb +5 -0
  41. data/spec/dummy_app/config/environments/development.rb +27 -0
  42. data/spec/dummy_app/config/environments/production.rb +54 -0
  43. data/spec/dummy_app/config/environments/test.rb +39 -0
  44. data/spec/dummy_app/config/initializers/backtrace_silencers.rb +7 -0
  45. data/spec/dummy_app/config/initializers/inflections.rb +10 -0
  46. data/spec/dummy_app/config/initializers/mime_types.rb +5 -0
  47. data/spec/dummy_app/config/initializers/secret_token.rb +7 -0
  48. data/spec/dummy_app/config/initializers/session_store.rb +8 -0
  49. data/spec/dummy_app/config/initializers/wrap_parameters.rb +12 -0
  50. data/spec/dummy_app/config/locales/en.yml +5 -0
  51. data/spec/dummy_app/config/routes.rb +62 -0
  52. data/spec/dummy_app/config/unicorn.rb +1 -0
  53. data/spec/dummy_app/config.ru +4 -0
  54. data/spec/dummy_app/db/seeds.rb +7 -0
  55. data/spec/dummy_app/lib/tasks/.gitkeep +0 -0
  56. data/spec/dummy_app/log/.gitkeep +0 -0
  57. data/spec/dummy_app/public/404.html +26 -0
  58. data/spec/dummy_app/public/422.html +26 -0
  59. data/spec/dummy_app/public/500.html +26 -0
  60. data/spec/dummy_app/public/favicon.ico +0 -0
  61. data/spec/dummy_app/public/index.html +241 -0
  62. data/spec/dummy_app/public/javascripts/bigpipe.js +164 -0
  63. data/spec/dummy_app/public/robots.txt +5 -0
  64. data/spec/dummy_app/script/rails +6 -0
  65. data/spec/dummy_app/spec/spec_helper.rb +26 -0
  66. data/spec/dummy_app/test/fixtures/.gitkeep +0 -0
  67. data/spec/dummy_app/test/functional/.gitkeep +0 -0
  68. data/spec/dummy_app/test/integration/.gitkeep +0 -0
  69. data/spec/dummy_app/test/integration/testabc_test.rb +9 -0
  70. data/spec/dummy_app/test/performance/browsing_test.rb +12 -0
  71. data/spec/dummy_app/test/test_helper.rb +13 -0
  72. data/spec/dummy_app/test/unit/.gitkeep +0 -0
  73. data/spec/dummy_app/vendor/assets/stylesheets/.gitkeep +0 -0
  74. data/spec/dummy_app/vendor/plugins/.gitkeep +0 -0
  75. data/spec/lib/bigpipe_rails_spec.rb +18 -0
  76. data/spec/requests/bigpipe_request_spec.rb +21 -0
  77. data/spec/spec_helper.rb +28 -0
  78. metadata +277 -0
data/assets/bigpipe.js ADDED
@@ -0,0 +1,164 @@
1
+ (function() {
2
+ var Bigpipe, CssResource, JsResource, Pagelet, PageletResource;
3
+ var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }, __hasProp = Object.prototype.hasOwnProperty, __extends = function(child, parent) {
4
+ for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; }
5
+ function ctor() { this.constructor = child; }
6
+ ctor.prototype = parent.prototype;
7
+ child.prototype = new ctor;
8
+ child.__super__ = parent.prototype;
9
+ return child;
10
+ };
11
+ Bigpipe = (function() {
12
+ function Bigpipe() {
13
+ this.get_resource = __bind(this.get_resource, this);
14
+ this.add_pagelet = __bind(this.add_pagelet, this); this.css = {};
15
+ this.js = {};
16
+ this.pagelets = [];
17
+ }
18
+ Bigpipe.prototype.add_pagelet = function(data) {
19
+ return this.pagelets.push(new Pagelet(data));
20
+ };
21
+ Bigpipe.prototype.get_resource = function(file, type) {
22
+ var _base, _base2, _ref, _ref2;
23
+ if (type === "css") {
24
+ if ((_ref = (_base = this.css)[file]) != null) {
25
+ _ref;
26
+ } else {
27
+ _base[file] = new CssResource(file);
28
+ };
29
+ return this.css[file];
30
+ } else if (type === "js") {
31
+ if ((_ref2 = (_base2 = this.js)[file]) != null) {
32
+ _ref2;
33
+ } else {
34
+ _base2[file] = new JsResource(file);
35
+ };
36
+ return this.js[file];
37
+ }
38
+ };
39
+ return Bigpipe;
40
+ })();
41
+ PageletResource = (function() {
42
+ function PageletResource(file_name) {
43
+ this.load_phase = 0;
44
+ this.file_name = file_name;
45
+ }
46
+ PageletResource.prototype.loaded = function() {
47
+ return this.load_phase === 2;
48
+ };
49
+ PageletResource.prototype.load = function() {
50
+ if (this.load_phase > 0) {
51
+ return;
52
+ }
53
+ this.load_phase = 1;
54
+ this.create_element();
55
+ this.el.ready(__bind(function() {
56
+ return this.load_phase = 2;
57
+ }, this));
58
+ return this;
59
+ };
60
+ return PageletResource;
61
+ })();
62
+ CssResource = (function() {
63
+ __extends(CssResource, PageletResource);
64
+ function CssResource() {
65
+ CssResource.__super__.constructor.apply(this, arguments);
66
+ }
67
+ CssResource.prototype.create_element = function() {
68
+ this.el = $j(document.createElement('link'));
69
+ this.el.attr('rel', 'stylesheet').attr('href', "" + this.file_name + ".css");
70
+ return this.el;
71
+ };
72
+ return CssResource;
73
+ })();
74
+ JsResource = (function() {
75
+ __extends(JsResource, PageletResource);
76
+ function JsResource() {
77
+ JsResource.__super__.constructor.apply(this, arguments);
78
+ }
79
+ JsResource.prototype.create_element = function() {
80
+ this.el = $j(document.createElement('script'));
81
+ this.el.attr('type', 'text/javascript').attr('src', "" + this.file_name + ".js");
82
+ return this.el;
83
+ };
84
+ return JsResource;
85
+ })();
86
+ Pagelet = (function() {
87
+ function Pagelet(data) {
88
+ var _ref;
89
+ this.container = data.container;
90
+ this.content = data.content;
91
+ this.append = data.append || false;
92
+ this.css_resources = [];
93
+ this.js_resources = [];
94
+ this.on_load = (_ref = data.on_load) != null ? _ref : function() {};
95
+ this.init_resources(data);
96
+ this.load_css();
97
+ }
98
+ Pagelet.prototype.init_resources = function(data) {
99
+ $j.each(data['css'] || [], __bind(function(i, file) {
100
+ return this.css_resources.push(window.Bigpipe.get_resource(file, 'css'));
101
+ }, this));
102
+ return $j.each(data['js'] || [], __bind(function(i, file) {
103
+ return this.js_resources.push(window.Bigpipe.get_resource(file, 'js'));
104
+ }, this));
105
+ };
106
+ Pagelet.prototype.load_css = function() {
107
+ this.add_css();
108
+ if (!this.css_loaded()) {
109
+ return setTimeout(__bind(function() {
110
+ return this.load_css();
111
+ }, this), 20);
112
+ } else {
113
+ this.add_html();
114
+ return this.load_js();
115
+ }
116
+ };
117
+ Pagelet.prototype.load_js = function() {
118
+ this.add_js();
119
+ if (!this.js_loaded()) {
120
+ return setTimeout(__bind(function() {
121
+ return this.load_js();
122
+ }, this), 20);
123
+ } else {
124
+ return this.on_load();
125
+ }
126
+ };
127
+ Pagelet.prototype.css_loaded = function() {
128
+ var loaded;
129
+ loaded = true;
130
+ $j.each(this.css_resources, function(i, resource) {
131
+ return loaded = loaded && resource.loaded();
132
+ });
133
+ return loaded;
134
+ };
135
+ Pagelet.prototype.js_loaded = function() {
136
+ var loaded;
137
+ loaded = true;
138
+ $j.each(this.js_resources, function(i, resource) {
139
+ return loaded = loaded && resource.loaded();
140
+ });
141
+ return loaded;
142
+ };
143
+ Pagelet.prototype.add_js = function() {
144
+ return $j.each(this.js_resources, function(i, resource) {
145
+ return resource.load();
146
+ });
147
+ };
148
+ Pagelet.prototype.add_css = function() {
149
+ return $j.each(this.css_resources, function(i, resource) {
150
+ return resource.load();
151
+ });
152
+ };
153
+ Pagelet.prototype.add_html = function() {
154
+ if (!this.append) {
155
+ return $j(this.container).html(this.content);
156
+ } else {
157
+ return $j(this.container).append(this.content);
158
+ }
159
+ };
160
+ return Pagelet;
161
+ })();
162
+ this.$j = jQuery.noConflict();
163
+ this.Bigpipe = new Bigpipe();
164
+ }).call(this);
@@ -0,0 +1,153 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{bigpipe-rails}
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Dan Langevin"]
12
+ s.date = %q{2011-07-24}
13
+ s.description = %q{Takes advantage of context switching and provides in Rails 3.1}
14
+ s.email = %q{dan.langevin@gmail.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.md",
18
+ "README.rdoc"
19
+ ]
20
+ s.files = [
21
+ ".document",
22
+ ".rspec",
23
+ "Gemfile",
24
+ "Gemfile.lock",
25
+ "Guardfile",
26
+ "LICENSE.txt",
27
+ "README.md",
28
+ "README.rdoc",
29
+ "Rakefile",
30
+ "VERSION",
31
+ "assets/bigpipe.coffee",
32
+ "assets/bigpipe.js",
33
+ "bigpipe-rails.gemspec",
34
+ "lib/bigpipe_rails.rb",
35
+ "lib/bigpipe_rails/helper.rb",
36
+ "lib/engines.rb",
37
+ "qunit/.DS_Store",
38
+ "qunit/qunit.css",
39
+ "qunit/qunit.js",
40
+ "qunit/tests.html",
41
+ "spec/dummy_app/.gitignore",
42
+ "spec/dummy_app/Gemfile",
43
+ "spec/dummy_app/Gemfile.lock",
44
+ "spec/dummy_app/README",
45
+ "spec/dummy_app/Rakefile",
46
+ "spec/dummy_app/app/assets/images/rails.png",
47
+ "spec/dummy_app/app/assets/javascripts/application.js",
48
+ "spec/dummy_app/app/assets/stylesheets/application.css",
49
+ "spec/dummy_app/app/controllers/application_controller.rb",
50
+ "spec/dummy_app/app/controllers/test_controller.rb",
51
+ "spec/dummy_app/app/helpers/application_helper.rb",
52
+ "spec/dummy_app/app/mailers/.gitkeep",
53
+ "spec/dummy_app/app/models/.gitkeep",
54
+ "spec/dummy_app/app/views/layouts/application.html.erb",
55
+ "spec/dummy_app/app/views/test/test.html.erb",
56
+ "spec/dummy_app/app/views/test/test_with_exception.html.erb",
57
+ "spec/dummy_app/config.ru",
58
+ "spec/dummy_app/config/application.rb",
59
+ "spec/dummy_app/config/boot.rb",
60
+ "spec/dummy_app/config/database.yml",
61
+ "spec/dummy_app/config/environment.rb",
62
+ "spec/dummy_app/config/environments/development.rb",
63
+ "spec/dummy_app/config/environments/production.rb",
64
+ "spec/dummy_app/config/environments/test.rb",
65
+ "spec/dummy_app/config/initializers/backtrace_silencers.rb",
66
+ "spec/dummy_app/config/initializers/inflections.rb",
67
+ "spec/dummy_app/config/initializers/mime_types.rb",
68
+ "spec/dummy_app/config/initializers/secret_token.rb",
69
+ "spec/dummy_app/config/initializers/session_store.rb",
70
+ "spec/dummy_app/config/initializers/wrap_parameters.rb",
71
+ "spec/dummy_app/config/locales/en.yml",
72
+ "spec/dummy_app/config/routes.rb",
73
+ "spec/dummy_app/config/unicorn.rb",
74
+ "spec/dummy_app/db/seeds.rb",
75
+ "spec/dummy_app/lib/tasks/.gitkeep",
76
+ "spec/dummy_app/log/.gitkeep",
77
+ "spec/dummy_app/public/404.html",
78
+ "spec/dummy_app/public/422.html",
79
+ "spec/dummy_app/public/500.html",
80
+ "spec/dummy_app/public/favicon.ico",
81
+ "spec/dummy_app/public/index.html",
82
+ "spec/dummy_app/public/javascripts/bigpipe.js",
83
+ "spec/dummy_app/public/robots.txt",
84
+ "spec/dummy_app/script/rails",
85
+ "spec/dummy_app/spec/spec_helper.rb",
86
+ "spec/dummy_app/test/fixtures/.gitkeep",
87
+ "spec/dummy_app/test/functional/.gitkeep",
88
+ "spec/dummy_app/test/integration/.gitkeep",
89
+ "spec/dummy_app/test/integration/testabc_test.rb",
90
+ "spec/dummy_app/test/performance/browsing_test.rb",
91
+ "spec/dummy_app/test/test_helper.rb",
92
+ "spec/dummy_app/test/unit/.gitkeep",
93
+ "spec/dummy_app/vendor/assets/stylesheets/.gitkeep",
94
+ "spec/dummy_app/vendor/plugins/.gitkeep",
95
+ "spec/lib/bigpipe_rails_spec.rb",
96
+ "spec/requests/bigpipe_request_spec.rb",
97
+ "spec/spec_helper.rb"
98
+ ]
99
+ s.homepage = %q{http://github.com/dlangevin/bigpipe-rails}
100
+ s.licenses = ["MIT"]
101
+ s.require_paths = ["lib"]
102
+ s.rubygems_version = %q{1.7.2}
103
+ s.summary = %q{Rails Engines Plugin to provide BigPipe functionality}
104
+
105
+ if s.respond_to? :specification_version then
106
+ s.specification_version = 3
107
+
108
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
109
+ s.add_runtime_dependency(%q<rails>, ["= 3.1.0.rc4"])
110
+ s.add_development_dependency(%q<sqlite3>, [">= 0"])
111
+ s.add_development_dependency(%q<rspec-rails>, [">= 0"])
112
+ s.add_development_dependency(%q<bundler>, [">= 0"])
113
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
114
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
115
+ s.add_development_dependency(%q<guard-coffeescript>, [">= 0"])
116
+ s.add_development_dependency(%q<ruby-debug19>, [">= 0"])
117
+ s.add_development_dependency(%q<mocha>, [">= 0"])
118
+ s.add_development_dependency(%q<unicorn>, [">= 0"])
119
+ s.add_development_dependency(%q<factory_girl_rails>, [">= 0"])
120
+ s.add_development_dependency(%q<rails3-generators>, [">= 0"])
121
+ s.add_development_dependency(%q<growl>, [">= 0"])
122
+ else
123
+ s.add_dependency(%q<rails>, ["= 3.1.0.rc4"])
124
+ s.add_dependency(%q<sqlite3>, [">= 0"])
125
+ s.add_dependency(%q<rspec-rails>, [">= 0"])
126
+ s.add_dependency(%q<bundler>, [">= 0"])
127
+ s.add_dependency(%q<jeweler>, [">= 0"])
128
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
129
+ s.add_dependency(%q<guard-coffeescript>, [">= 0"])
130
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
131
+ s.add_dependency(%q<mocha>, [">= 0"])
132
+ s.add_dependency(%q<unicorn>, [">= 0"])
133
+ s.add_dependency(%q<factory_girl_rails>, [">= 0"])
134
+ s.add_dependency(%q<rails3-generators>, [">= 0"])
135
+ s.add_dependency(%q<growl>, [">= 0"])
136
+ end
137
+ else
138
+ s.add_dependency(%q<rails>, ["= 3.1.0.rc4"])
139
+ s.add_dependency(%q<sqlite3>, [">= 0"])
140
+ s.add_dependency(%q<rspec-rails>, [">= 0"])
141
+ s.add_dependency(%q<bundler>, [">= 0"])
142
+ s.add_dependency(%q<jeweler>, [">= 0"])
143
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
144
+ s.add_dependency(%q<guard-coffeescript>, [">= 0"])
145
+ s.add_dependency(%q<ruby-debug19>, [">= 0"])
146
+ s.add_dependency(%q<mocha>, [">= 0"])
147
+ s.add_dependency(%q<unicorn>, [">= 0"])
148
+ s.add_dependency(%q<factory_girl_rails>, [">= 0"])
149
+ s.add_dependency(%q<rails3-generators>, [">= 0"])
150
+ s.add_dependency(%q<growl>, [">= 0"])
151
+ end
152
+ end
153
+
@@ -0,0 +1,36 @@
1
+ module BigpipeRails
2
+ module Helper
3
+ extend ActiveSupport::Concern
4
+
5
+ module InstanceMethods
6
+ # helper method to put Bigpipe on the page
7
+ def bigpipe(container, opts = {}, &block)
8
+ @bigpipe_js = []
9
+ @bigpipe_css = []
10
+ opts[:append] ||= false
11
+ opts[:container] = container
12
+ self.bigpipes << [opts, block]
13
+ end
14
+ # accessor
15
+ def bigpipes
16
+ @bigpipes ||= []
17
+ end
18
+ # render the collection
19
+ def render_bigpipe
20
+ @bigpipes.each do |pipe|
21
+ opts, block = pipe
22
+ # we actually run the block here -
23
+ # TODO: use em-synchrony and/or our own Fiber implementation
24
+ opts[:content] = escape_javascript(capture(&block))
25
+ data = capture do
26
+ javascript_tag do
27
+ %Q{BigPipe.add_pagelet(#{opts.to_json});}
28
+ end
29
+ end
30
+ self.output_buffer << data
31
+ end
32
+ ""
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,13 @@
1
+ module BigpipeRails
2
+ extend ActiveSupport::Autoload
3
+ autoload :Helper
4
+
5
+ # root path
6
+ def self.root
7
+ File.expand_path(File.join(File.dirname(__FILE__),".."))
8
+ end
9
+
10
+ # get the engines file
11
+ require(File.expand_path("engines", File.dirname(__FILE__)))
12
+
13
+ end
data/lib/engines.rb ADDED
@@ -0,0 +1,16 @@
1
+ require "bigpipe_rails"
2
+ require "rails"
3
+
4
+ module BigpipeRails
5
+ class Railties < Rails::Engine
6
+
7
+ engine_name :bigpipe_rails
8
+ # include our helper
9
+ ActionView::Base.send(:include, BigpipeRails::Helper)
10
+
11
+ # copy over our bigpipe
12
+ FileUtils.mkdir_p(File.join(Rails.root, "public", "javascripts"))
13
+ FileUtils.cp(File.join(BigpipeRails.root, "assets", "bigpipe.js"), File.join(Rails.root, "public", "javascripts"))
14
+
15
+ end
16
+ end
data/qunit/.DS_Store ADDED
Binary file
data/qunit/qunit.css ADDED
@@ -0,0 +1,227 @@
1
+ /**
2
+ * QUnit - A JavaScript Unit Testing Framework
3
+ *
4
+ * http://docs.jquery.com/QUnit
5
+ *
6
+ * Copyright (c) 2011 John Resig, Jörn Zaefferer
7
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
8
+ * or GPL (GPL-LICENSE.txt) licenses.
9
+ * Pulled Live from Git Sun Jul 24 15:30:01 UTC 2011
10
+ * Last Commit: 28be4753ea257da54721aa44f8599adb005e1033
11
+ */
12
+
13
+ /** Font Family and Sizes */
14
+
15
+ #qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
16
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
17
+ }
18
+
19
+ #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
20
+ #qunit-tests { font-size: smaller; }
21
+
22
+
23
+ /** Resets */
24
+
25
+ #qunit-tests, #qunit-tests ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
26
+ margin: 0;
27
+ padding: 0;
28
+ }
29
+
30
+
31
+ /** Header */
32
+
33
+ #qunit-header {
34
+ padding: 0.5em 0 0.5em 1em;
35
+
36
+ color: #8699a4;
37
+ background-color: #0d3349;
38
+
39
+ font-size: 1.5em;
40
+ line-height: 1em;
41
+ font-weight: normal;
42
+
43
+ border-radius: 15px 15px 0 0;
44
+ -moz-border-radius: 15px 15px 0 0;
45
+ -webkit-border-top-right-radius: 15px;
46
+ -webkit-border-top-left-radius: 15px;
47
+ }
48
+
49
+ #qunit-header a {
50
+ text-decoration: none;
51
+ color: #c2ccd1;
52
+ }
53
+
54
+ #qunit-header a:hover,
55
+ #qunit-header a:focus {
56
+ color: #fff;
57
+ }
58
+
59
+ #qunit-banner {
60
+ height: 5px;
61
+ }
62
+
63
+ #qunit-testrunner-toolbar {
64
+ padding: 0.5em 0 0.5em 2em;
65
+ color: #5E740B;
66
+ background-color: #eee;
67
+ }
68
+
69
+ #qunit-userAgent {
70
+ padding: 0.5em 0 0.5em 2.5em;
71
+ background-color: #2b81af;
72
+ color: #fff;
73
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
74
+ }
75
+
76
+
77
+ /** Tests: Pass/Fail */
78
+
79
+ #qunit-tests {
80
+ list-style-position: inside;
81
+ }
82
+
83
+ #qunit-tests li {
84
+ padding: 0.4em 0.5em 0.4em 2.5em;
85
+ border-bottom: 1px solid #fff;
86
+ list-style-position: inside;
87
+ }
88
+
89
+ #qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
90
+ display: none;
91
+ }
92
+
93
+ #qunit-tests li strong {
94
+ cursor: pointer;
95
+ }
96
+
97
+ #qunit-tests li a {
98
+ padding: 0.5em;
99
+ color: #c2ccd1;
100
+ text-decoration: none;
101
+ }
102
+ #qunit-tests li a:hover,
103
+ #qunit-tests li a:focus {
104
+ color: #000;
105
+ }
106
+
107
+ #qunit-tests ol {
108
+ margin-top: 0.5em;
109
+ padding: 0.5em;
110
+
111
+ background-color: #fff;
112
+
113
+ border-radius: 15px;
114
+ -moz-border-radius: 15px;
115
+ -webkit-border-radius: 15px;
116
+
117
+ box-shadow: inset 0px 2px 13px #999;
118
+ -moz-box-shadow: inset 0px 2px 13px #999;
119
+ -webkit-box-shadow: inset 0px 2px 13px #999;
120
+ }
121
+
122
+ #qunit-tests table {
123
+ border-collapse: collapse;
124
+ margin-top: .2em;
125
+ }
126
+
127
+ #qunit-tests th {
128
+ text-align: right;
129
+ vertical-align: top;
130
+ padding: 0 .5em 0 0;
131
+ }
132
+
133
+ #qunit-tests td {
134
+ vertical-align: top;
135
+ }
136
+
137
+ #qunit-tests pre {
138
+ margin: 0;
139
+ white-space: pre-wrap;
140
+ word-wrap: break-word;
141
+ }
142
+
143
+ #qunit-tests del {
144
+ background-color: #e0f2be;
145
+ color: #374e0c;
146
+ text-decoration: none;
147
+ }
148
+
149
+ #qunit-tests ins {
150
+ background-color: #ffcaca;
151
+ color: #500;
152
+ text-decoration: none;
153
+ }
154
+
155
+ /*** Test Counts */
156
+
157
+ #qunit-tests b.counts { color: black; }
158
+ #qunit-tests b.passed { color: #5E740B; }
159
+ #qunit-tests b.failed { color: #710909; }
160
+
161
+ #qunit-tests li li {
162
+ margin: 0.5em;
163
+ padding: 0.4em 0.5em 0.4em 0.5em;
164
+ background-color: #fff;
165
+ border-bottom: none;
166
+ list-style-position: inside;
167
+ }
168
+
169
+ /*** Passing Styles */
170
+
171
+ #qunit-tests li li.pass {
172
+ color: #5E740B;
173
+ background-color: #fff;
174
+ border-left: 26px solid #C6E746;
175
+ }
176
+
177
+ #qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
178
+ #qunit-tests .pass .test-name { color: #366097; }
179
+
180
+ #qunit-tests .pass .test-actual,
181
+ #qunit-tests .pass .test-expected { color: #999999; }
182
+
183
+ #qunit-banner.qunit-pass { background-color: #C6E746; }
184
+
185
+ /*** Failing Styles */
186
+
187
+ #qunit-tests li li.fail {
188
+ color: #710909;
189
+ background-color: #fff;
190
+ border-left: 26px solid #EE5757;
191
+ }
192
+
193
+ #qunit-tests > li:last-child {
194
+ border-radius: 0 0 15px 15px;
195
+ -moz-border-radius: 0 0 15px 15px;
196
+ -webkit-border-bottom-right-radius: 15px;
197
+ -webkit-border-bottom-left-radius: 15px;
198
+ }
199
+
200
+ #qunit-tests .fail { color: #000000; background-color: #EE5757; }
201
+ #qunit-tests .fail .test-name,
202
+ #qunit-tests .fail .module-name { color: #000000; }
203
+
204
+ #qunit-tests .fail .test-actual { color: #EE5757; }
205
+ #qunit-tests .fail .test-expected { color: green; }
206
+
207
+ #qunit-banner.qunit-fail { background-color: #EE5757; }
208
+
209
+
210
+ /** Result */
211
+
212
+ #qunit-testresult {
213
+ padding: 0.5em 0.5em 0.5em 2.5em;
214
+
215
+ color: #2b81af;
216
+ background-color: #D2E0E6;
217
+
218
+ border-bottom: 1px solid white;
219
+ }
220
+
221
+ /** Fixture */
222
+
223
+ #qunit-fixture {
224
+ position: absolute;
225
+ top: -10000px;
226
+ left: -10000px;
227
+ }