eris 0.0.4 → 0.0.5

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.
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