eris 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,2 +1,34 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
+
4
+ namespace :jasmine do
5
+ task :server do
6
+ require 'jasmine'
7
+
8
+ puts "your tests are here:"
9
+ puts " http://localhost:8888/"
10
+
11
+ c = Jasmine::Config.new
12
+ puts c.src_dir
13
+ puts c.src_files
14
+ c.start_server
15
+ end
16
+
17
+ desc "Run continuous integration tests"
18
+ task :ci do
19
+ require 'jasmine'
20
+ require "rspec"
21
+ require "rspec/core/rake_task"
22
+ require 'eris'
23
+ ENV['JASMINE_BROWSER'] = 'chrome'
24
+
25
+ RSpec::Core::RakeTask.new(:jasmine_continuous_integration_runner) do |t|
26
+ t.rspec_opts = ["--color", "--format", "progress"]
27
+ t.verbose = true
28
+ end
29
+ Rake::Task["jasmine_continuous_integration_runner"].invoke
30
+ end
31
+ end
32
+
33
+ desc "Run specs with local config"
34
+ task :jasmine => ['jasmine:server']
@@ -0,0 +1,37 @@
1
+ var jasmineEnyoBootstrap = jasmineEnyoBootstrap || {};
2
+
3
+ jasmineEnyoBootstrap.getXhr = function() {
4
+ try {
5
+ return new XMLHttpRequest();
6
+ } catch (e) {
7
+ }
8
+ try {
9
+ return new ActiveXObject('Msxml2.XMLHTTP');
10
+ } catch (e) {
11
+ }
12
+ try {
13
+ return new ActiveXObject('Microsoft.XMLHTTP');
14
+ } catch (e) {
15
+ }
16
+ return null;
17
+ };
18
+
19
+ jasmineEnyoBootstrap.setLaunchParams = function() {
20
+
21
+ var xhr = jasmineEnyoBootstrap.getXhr();
22
+ var erisConfig = JSON.parse(xhr.open("GET", "eris_config.json", true).responseText);
23
+
24
+ var launchParams = erisConfig.enyoLaunchParams;
25
+
26
+ if (!launchParams) {
27
+ return;
28
+ }
29
+
30
+ window.history.pushState({}, "Jasmine Suite", "http://localhost:8888?" + buildQueryString());
31
+
32
+ function buildQueryString() {
33
+ return Object.keys(launchParams).map(function(key) {
34
+ return encodeURIComponent(key) + '=' + encodeURIComponent(launchParams[key]);
35
+ }).join('&');
36
+ }
37
+ };
@@ -1,5 +1,6 @@
1
1
  require 'json'
2
2
  require 'pathname'
3
+ require 'uri'
3
4
 
4
5
  class ErisConfig
5
6
  def initialize(opts)
@@ -18,4 +19,10 @@ class ErisConfig
18
19
  File.join(@app_root, enyo_root_for_environment)
19
20
  end
20
21
  end
22
+
23
+ def enyo_js_path
24
+ version = @config_hash['enyoVersion'] || "0.10"
25
+
26
+ "usr/palm/frameworks/enyo/#{version}/framework/enyo.js"
27
+ end
21
28
  end
@@ -3,12 +3,11 @@ require 'eris/lib/eris_config'
3
3
  module Jasmine
4
4
  class Config
5
5
  def src_files
6
- if simple_config['src_files']
7
- p match_files(src_dir, simple_config['src_files']) + ["usr/palm/frameworks/enyo/0.10/framework/enyo.js"]
8
- match_files(src_dir, simple_config['src_files']) + ["usr/palm/frameworks/enyo/0.10/framework/enyo.js"]
9
- else
10
- []
11
- end
6
+ eris_config = ErisConfig.new(:config_path => 'eris_config.json', :app_root => project_root)
7
+
8
+ files = ["/__ERIS_RESOURCES__/jasmineEnyoBootstrap.js", eris_config.enyo_js_path]
9
+ files += match_files(src_dir, simple_config['src_files']) if simple_config['src_files']
10
+ files
12
11
  end
13
12
 
14
13
  def simple_config_file
@@ -31,7 +30,8 @@ module Jasmine
31
30
  eris_config = ErisConfig.new(:config_path => 'eris_config.json', :app_root => config.project_root)
32
31
 
33
32
  map("/usr/palm/frameworks") { run Rack::File.new(eris_config.enyo_root) }
34
-
33
+ map("/__ERIS_RESOURCES__") { run Rack::File.new(File.expand_path(File.dirname(__FILE__), '/../js')) }
34
+
35
35
  map('/') do
36
36
  run Rack::Cascade.new([
37
37
  Rack::URLMap.new('/' => Rack::File.new(config.src_dir)),
@@ -14,6 +14,7 @@ namespace :jasmine do
14
14
  desc "Run continuous integration tests"
15
15
  task :ci do
16
16
  require 'jasmine'
17
+ require 'eris/lib/jasmine_config_overrides'
17
18
  require "rspec"
18
19
  require "rspec/core/rake_task"
19
20
  require 'eris'
@@ -1,4 +1,8 @@
1
1
  {
2
- "localEnyoRoot": "../../",
3
- "ciEnyoRoot": "/usr/palm/frameworks/"
2
+ "localEnyoRoot": "../../",
3
+ "ciEnyoRoot": "/usr/palm/frameworks/",
4
+ "enyoVersion": "0.10",
5
+ "enyoLaunchParams": {
6
+ "nobridge": true
7
+ }
4
8
  }
@@ -11,11 +11,6 @@
11
11
  # - dist/**/*.js
12
12
  #
13
13
  src_files:
14
- - ../../enyo/1.0/framework/enyo.js
15
- # For attempts at partially loading Enyo for specs
16
- # - enyo/enyo-loader.js
17
- # - spec/jasmine-depends.js
18
- # - depends.js
19
14
 
20
15
  # stylesheets
21
16
  #
@@ -1,3 +1,3 @@
1
1
  module Eris
2
- Eris::VERSION = "0.0.4"
2
+ Eris::VERSION = "0.0.5"
3
3
  end
@@ -1 +1,2 @@
1
- This is the enyo.js fixture
1
+ // This is the enyo.js fixture
2
+ enyo = {};
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "localEnyoRoot": "../",
3
3
  "ciEnyoRoot": "../ciboxenyo"
4
- }
4
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "localEnyoRoot": "../",
3
+ "ciEnyoRoot": "../ciboxenyo",
4
+ "enyoVersion": "19"
5
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "localEnyoRoot": "../",
3
+ "ciEnyoRoot": "../ciboxenyo",
4
+ "enyoLaunchParams": {
5
+ "foo": "bar baz",
6
+ "zip": 12
7
+ }
8
+ }
@@ -0,0 +1,42 @@
1
+ describe("setLaunchParams", function () {
2
+
3
+ beforeEach(function() {
4
+ window.history.pushState({}, "Jasmine Suite", "http://localhost:8888/");
5
+ });
6
+
7
+ describe("when no launch parameters are specified", function () {
8
+ beforeEach(function() {
9
+ spyOn(jasmineEnyoBootstrap, 'getXhr').andCallFake(function() {
10
+ return {
11
+ open: function() {
12
+ return testResponses.erisConfig.noLaunchParams.success;
13
+ }
14
+ }
15
+ });
16
+
17
+ jasmineEnyoBootstrap.setLaunchParams();
18
+ });
19
+
20
+ it("should not put any params onto the window's query string", function() {
21
+ expect(window.location.search).toEqual("");
22
+ });
23
+ });
24
+
25
+ describe("when launch parameters are specified", function () {
26
+ beforeEach(function() {
27
+ spyOn(jasmineEnyoBootstrap, 'getXhr').andCallFake(function() {
28
+ return {
29
+ open: function() {
30
+ return testResponses.erisConfig.withLaunchParams.success;
31
+ }
32
+ }
33
+ });
34
+
35
+ jasmineEnyoBootstrap.setLaunchParams();
36
+ });
37
+
38
+ it("should put any params from eris_config.json onto the window", function() {
39
+ expect(window.location.search).toEqual("?foo=bar%20baz&zip=12");
40
+ });
41
+ });
42
+ });
@@ -0,0 +1,29 @@
1
+ testResponses = {};
2
+
3
+ testResponses.erisConfig = {
4
+ noLaunchParams: {
5
+ success: {
6
+ status: 200,
7
+ responseText: JSON.stringify({
8
+ "localEnyoRoot": "../",
9
+ "ciEnyoRoot": "../ciboxenyo"
10
+ }
11
+ )
12
+ }
13
+ },
14
+
15
+ withLaunchParams: {
16
+ success: {
17
+ status: 200,
18
+ responseText: JSON.stringify({
19
+ "localEnyoRoot": "../",
20
+ "ciEnyoRoot": "../ciboxenyo",
21
+ "enyoLaunchParams": {
22
+ "foo": "bar baz",
23
+ "zip": 12
24
+ }
25
+ }
26
+ )
27
+ }
28
+ }
29
+ };
File without changes
@@ -0,0 +1,73 @@
1
+ # src_files
2
+ #
3
+ # Return an array of filepaths relative to src_dir to include before jasmine specs.
4
+ # Default: []
5
+ #
6
+ # EXAMPLE:
7
+ #
8
+ # src_files:
9
+ # - lib/source1.js
10
+ # - lib/source2.js
11
+ # - dist/**/*.js
12
+ #
13
+ src_files:
14
+ - lib/eris/js/**/*.js
15
+
16
+ # stylesheets
17
+ #
18
+ # Return an array of stylesheet filepaths relative to src_dir to include before jasmine specs.
19
+ # Default: []
20
+ #
21
+ # EXAMPLE:
22
+ #
23
+ # stylesheets:
24
+ # - css/style.css
25
+ # - stylesheets/*.css
26
+ #
27
+ stylesheets:
28
+
29
+ # helpers
30
+ #
31
+ # Return an array of filepaths relative to spec_dir to include before jasmine specs.
32
+ # Default: ["helpers/**/*.js"]
33
+ #
34
+ # EXAMPLE:
35
+ #
36
+ # helpers:
37
+ # - helpers/**/*.js
38
+ #
39
+ helpers:
40
+
41
+ # spec_files
42
+ #
43
+ # Return an array of filepaths relative to spec_dir to include.
44
+ # Default: ["**/*[sS]pec.js"]
45
+ #
46
+ # EXAMPLE:
47
+ #
48
+ # spec_files:
49
+ # - **/*[sS]pec.js
50
+ #
51
+ spec_files:
52
+
53
+ # src_dir
54
+ #
55
+ # Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
56
+ # Default: project root
57
+ #
58
+ # EXAMPLE:
59
+ #
60
+ # src_dir: public
61
+ #
62
+ src_dir: .
63
+
64
+ # spec_dir
65
+ #
66
+ # Spec directory path. Your spec_files must be returned relative to this path.
67
+ # Default: spec/javascripts
68
+ #
69
+ # EXAMPLE:
70
+ #
71
+ # spec_dir: spec/javascripts
72
+ #
73
+ spec_dir:
@@ -0,0 +1,21 @@
1
+ module Jasmine
2
+ class Config
3
+
4
+ end
5
+ end
6
+
7
+
8
+ # Note - this is necessary for rspec2, which has removed the backtrace
9
+ module Jasmine
10
+ class SpecBuilder
11
+ def declare_spec(parent, spec)
12
+ me = self
13
+ example_name = spec["name"]
14
+ @spec_ids << spec["id"]
15
+ backtrace = @example_locations[parent.description + " " + example_name]
16
+ parent.it example_name, {} do
17
+ me.report_spec(spec["id"])
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ $:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
2
+
3
+ require 'rubygems'
4
+ require 'jasmine'
5
+ jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
6
+ require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
7
+ if Jasmine::rspec2?
8
+ require 'rspec'
9
+ else
10
+ require 'spec'
11
+ end
12
+
13
+ jasmine_config = Jasmine::Config.new
14
+ spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
15
+
16
+ should_stop = false
17
+
18
+ if Jasmine::rspec2?
19
+ RSpec.configuration.after(:suite) do
20
+ spec_builder.stop if should_stop
21
+ end
22
+ else
23
+ Spec::Runner.configure do |config|
24
+ config.after(:suite) do
25
+ spec_builder.stop if should_stop
26
+ end
27
+ end
28
+ end
29
+
30
+ spec_builder.start
31
+ should_stop = true
32
+ spec_builder.declare_suites
@@ -32,4 +32,21 @@ describe "Eris Config" do
32
32
  ENV['IS_CI_BOX'] = old_env_value
33
33
  end
34
34
  end
35
+
36
+
37
+ describe "#enyo_js_path" do
38
+
39
+ it "return the default path" do
40
+ config = ErisConfig.new(:config_path => @config_path, :app_root => @app_root)
41
+ config.enyo_js_path.should match('usr/palm/frameworks/enyo/0.10/framework/enyo.js')
42
+ end
43
+
44
+ it "should return a path with an overridden version number" do
45
+ @config_path = File.join(@app_root, 'eris_config_overridden_version.json')
46
+
47
+ config = ErisConfig.new(:config_path => @config_path, :app_root => @app_root)
48
+ config.enyo_js_path.should match('usr/palm/frameworks/enyo/19/framework/enyo.js')
49
+ end
50
+ end
51
+
35
52
  end
@@ -106,7 +106,7 @@ describe "Eris Server" do
106
106
  end
107
107
 
108
108
  it "should return enyo" do
109
- @body.should == "This is the enyo.js fixture"
109
+ @body.should match("This is the enyo.js fixture")
110
110
  end
111
111
  end
112
112
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eris
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - HP webOS
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-08-01 00:00:00 -07:00
19
+ date: 2011-08-03 00:00:00 -07:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
@@ -223,6 +223,7 @@ files:
223
223
  - js_helpers/ErisHelpers.js
224
224
  - lib/eris.rb
225
225
  - lib/eris/eris.ru
226
+ - lib/eris/js/jasmineEnyoBootstrap.js
226
227
  - lib/eris/lib/eris_config.rb
227
228
  - lib/eris/lib/jasmine_config_overrides.rb
228
229
  - lib/eris/lib/jasmine_rspec_runner.rb
@@ -243,10 +244,18 @@ files:
243
244
  - spec/fixtures/sample_app/app/models/foo.js
244
245
  - spec/fixtures/sample_app/appinfo.json
245
246
  - spec/fixtures/sample_app/eris_config.json
247
+ - spec/fixtures/sample_app/eris_config_overridden_version.json
248
+ - spec/fixtures/sample_app/eris_config_with_launch_params.json
246
249
  - spec/fixtures/sample_app/index.html.erb
247
250
  - spec/fixtures/sample_app/spec/acceptance/helpers/AppHelper.js
248
251
  - spec/fixtures/vcr_cassettes/failure.yml
249
252
  - spec/fixtures/vcr_cassettes/success.yml
253
+ - spec/javascripts/SetLaunchParamsSpec.js
254
+ - spec/javascripts/helpers/TestResponses.js
255
+ - spec/javascripts/helpers/specHelper.js
256
+ - spec/javascripts/support/jasmine.yml
257
+ - spec/javascripts/support/jasmine_config.rb
258
+ - spec/javascripts/support/jasmine_runner.rb
250
259
  - spec/lib/eris/lib/eris_config_spec.rb
251
260
  - spec/lib/eris/lib/eris_spec.rb
252
261
  - spec/lib/eris/lib/luna_request_spec.rb
@@ -295,10 +304,18 @@ test_files:
295
304
  - spec/fixtures/sample_app/app/models/foo.js
296
305
  - spec/fixtures/sample_app/appinfo.json
297
306
  - spec/fixtures/sample_app/eris_config.json
307
+ - spec/fixtures/sample_app/eris_config_overridden_version.json
308
+ - spec/fixtures/sample_app/eris_config_with_launch_params.json
298
309
  - spec/fixtures/sample_app/index.html.erb
299
310
  - spec/fixtures/sample_app/spec/acceptance/helpers/AppHelper.js
300
311
  - spec/fixtures/vcr_cassettes/failure.yml
301
312
  - spec/fixtures/vcr_cassettes/success.yml
313
+ - spec/javascripts/SetLaunchParamsSpec.js
314
+ - spec/javascripts/helpers/TestResponses.js
315
+ - spec/javascripts/helpers/specHelper.js
316
+ - spec/javascripts/support/jasmine.yml
317
+ - spec/javascripts/support/jasmine_config.rb
318
+ - spec/javascripts/support/jasmine_runner.rb
302
319
  - spec/lib/eris/lib/eris_config_spec.rb
303
320
  - spec/lib/eris/lib/eris_spec.rb
304
321
  - spec/lib/eris/lib/luna_request_spec.rb