browse-everything 0.8.4 → 0.9.0

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.
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ require 'rake'
3
+
4
+ # Run the jasmine tests by running the jasmine:ci rake command and parses the output for failures.
5
+ # The spec will fail if any jasmine tests fails.
6
+ describe "Jasmine" do
7
+ it "expects all jasmine tests to pass" do
8
+ load_rake_environment ["#{jasmine_path}/lib/jasmine/tasks/jasmine.rake"]
9
+ jasmine_out = run_task 'jasmine:ci'
10
+ unless jasmine_out.include? "0 failures"
11
+ puts "Some of the Jasmine tests failed"
12
+ puts jasmine_out
13
+ end
14
+ expect(jasmine_out).to include "0 failures"
15
+ end
16
+ end
17
+
18
+ def jasmine_path
19
+ Gem.loaded_specs['jasmine'].full_gem_path
20
+ end
@@ -0,0 +1,124 @@
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
+ - assets/application.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
+ - stylesheets/**/*.css
29
+
30
+ # helpers
31
+ #
32
+ # Return an array of filepaths relative to spec_dir to include before jasmine specs.
33
+ # Default: ["helpers/**/*.js"]
34
+ #
35
+ # EXAMPLE:
36
+ #
37
+ # helpers:
38
+ # - helpers/**/*.js
39
+ #
40
+ helpers:
41
+ - 'helpers/**/*.js'
42
+
43
+ # spec_files
44
+ #
45
+ # Return an array of filepaths relative to spec_dir to include.
46
+ # Default: ["**/*[sS]pec.js"]
47
+ #
48
+ # EXAMPLE:
49
+ #
50
+ # spec_files:
51
+ # - **/*[sS]pec.js
52
+ #
53
+ spec_files:
54
+ - '**/*[sS]pec.js*'
55
+
56
+ # src_dir
57
+ #
58
+ # Source directory path. Your src_files must be returned relative to this path. Will use root if left blank.
59
+ # Default: project root
60
+ #
61
+ # EXAMPLE:
62
+ #
63
+ # src_dir: public
64
+ #
65
+ src_dir:
66
+
67
+ # spec_dir
68
+ #
69
+ # Spec directory path. Your spec_files must be returned relative to this path.
70
+ # Default: spec/javascripts
71
+ #
72
+ # EXAMPLE:
73
+ #
74
+ # spec_dir: spec/javascripts
75
+ #
76
+ spec_dir:
77
+
78
+ # spec_helper
79
+ #
80
+ # Ruby file that Jasmine server will require before starting.
81
+ # Returned relative to your root path
82
+ # Default spec/javascripts/support/jasmine_helper.rb
83
+ #
84
+ # EXAMPLE:
85
+ #
86
+ # spec_helper: spec/javascripts/support/jasmine_helper.rb
87
+ #
88
+ spec_helper: spec/javascripts/support/jasmine_helper.rb
89
+
90
+ # boot_dir
91
+ #
92
+ # Boot directory path. Your boot_files must be returned relative to this path.
93
+ # Default: Built in boot file
94
+ #
95
+ # EXAMPLE:
96
+ #
97
+ # boot_dir: spec/javascripts/support/boot
98
+ #
99
+ boot_dir:
100
+
101
+ # boot_files
102
+ #
103
+ # Return an array of filepaths relative to boot_dir to include in order to boot Jasmine
104
+ # Default: Built in boot file
105
+ #
106
+ # EXAMPLE
107
+ #
108
+ # boot_files:
109
+ # - '**/*.js'
110
+ #
111
+ boot_files:
112
+
113
+ # rack_options
114
+ #
115
+ # Extra options to be passed to the rack server
116
+ # by default, Port and AccessLog are passed.
117
+ #
118
+ # This is an advanced options, and left empty by default
119
+ #
120
+ # EXAMPLE
121
+ #
122
+ # rack_options:
123
+ # server: 'thin'
124
+
@@ -0,0 +1,15 @@
1
+ #Use this file to set/override Jasmine configuration options
2
+ #You can remove it if you don't need it.
3
+ #This file is loaded *after* jasmine.yml is interpreted.
4
+ #
5
+ #Example: using a different boot file.
6
+ #Jasmine.configure do |config|
7
+ # config.boot_dir = '/absolute/path/to/boot_dir'
8
+ # config.boot_files = lambda { ['/absolute/path/to/boot_dir/file.js'] }
9
+ #end
10
+ #
11
+ #Example: prevent PhantomJS auto install, uses PhantomJS already on your path.
12
+ #Jasmine.configure do |config|
13
+ # config.prevent_phantom_js_auto_install = true
14
+ #end
15
+ #
@@ -8,6 +8,7 @@ require 'vcr'
8
8
  require 'engine_cart'
9
9
  require 'capybara/rails'
10
10
  require 'capybara/rspec'
11
+ require 'support/rake'
11
12
 
12
13
  EngineCart.load_application!
13
14
 
@@ -0,0 +1,41 @@
1
+ require 'rake'
2
+
3
+ module RakeHelper
4
+ def load_rake_environment(files)
5
+ @rake = Rake::Application.new
6
+ Rake.application = @rake
7
+ Rake::Task.define_task(:environment)
8
+ files.each {|file| load file}
9
+ end
10
+
11
+ def run_task(task)
12
+ capture_stdout_stderr do
13
+ @rake[task].invoke
14
+ end
15
+ end
16
+
17
+ # saves original $stdout in variable
18
+ # set $stdout as local instance of StringIO
19
+ # yields to code execution
20
+ # returns the local instance of StringIO
21
+ # resets $stdout to original value
22
+ def capture_stdout_stderr
23
+ out = StringIO.new
24
+ err = StringIO.new
25
+ $stdout = out
26
+ $stderr = err
27
+ begin
28
+ yield
29
+ rescue SystemExit => e
30
+ puts "error = #{e.inspect}"
31
+ end
32
+ return "Output: #{out.string}\n Errors:#{err.string}"
33
+ ensure
34
+ $stdout = STDOUT
35
+ $stdout = STDERR
36
+ end
37
+
38
+ RSpec.configure do |config|
39
+ config.include RakeHelper
40
+ end
41
+ end
@@ -8,39 +8,69 @@ describe 'browse_everything/_file.html.erb', type: :view do
8
8
  'file.m4v', 1024*1024*1024, Time.now, false
9
9
  )
10
10
  }
11
+ let(:container) {
12
+ BrowseEverything::FileEntry.new(
13
+ 'dir_id_01234', 'my_provider:/location/pa/th/dir',
14
+ 'dir', 0, Time.now, true
15
+ )
16
+ }
11
17
  let(:provider) { double("provider") }
12
18
  let(:page) { Capybara::Node::Simple.new(rendered) }
13
19
 
14
20
 
15
21
  before do
16
22
  allow(view).to receive(:browse_everything_engine).and_return(BrowseEverything::Engine.routes.url_helpers)
17
- allow(view).to receive(:file).and_return(file)
18
23
  allow(view).to receive(:provider).and_return(provider)
19
24
  allow(view).to receive(:path).and_return("path")
20
25
  allow(view).to receive(:parent).and_return("parent")
21
26
  allow(view).to receive(:provider_name).and_return("my provider")
22
27
  allow(provider).to receive(:config).and_return(config)
23
- render
24
28
  end
25
29
 
26
- context "file not too big" do
27
- let(:config) { { max_upload_file_size: (5*1024*1024*1024) } }
28
- it "should draw link" do
29
- expect(page).to have_selector("a.ev-link")
30
+ describe "a file" do
31
+ before do
32
+ allow(view).to receive(:file).and_return(file)
33
+ render
34
+ end
35
+ context "file not too big" do
36
+ let(:config) { { max_upload_file_size: (5*1024*1024*1024) } }
37
+ it "should draw link" do
38
+ expect(page).to have_selector("a.ev-link")
39
+ end
30
40
  end
31
- end
32
41
 
33
- context "max not configured" do
34
- let(:config) { { } }
35
- it "should draw link" do
36
- expect(page).to have_selector("a.ev-link")
42
+ context "max not configured" do
43
+ let(:config) { { } }
44
+ it "should draw link" do
45
+ expect(page).to have_selector("a.ev-link")
46
+ end
47
+ end
48
+
49
+ context "file too big" do
50
+ let(:config) { { max_upload_file_size: 1024 } }
51
+ it "should draw link" do
52
+ expect(page).not_to have_selector("a.ev-link")
53
+ end
54
+ end
55
+
56
+ context "multi-select" do
57
+ let(:config) { { } }
58
+ it "should not have a checkbox" do
59
+ expect(page).not_to have_selector("input.ev-select-all")
60
+ end
37
61
  end
38
62
  end
39
63
 
40
- context "file too big" do
41
- let(:config) { { max_upload_file_size: 1024 } }
42
- it "should draw link" do
43
- expect(page).not_to have_selector("a.ev-link")
64
+ describe "a directory" do
65
+ before do
66
+ allow(view).to receive(:file).and_return(container)
67
+ render
68
+ end
69
+ context "multi-select" do
70
+ let(:config) { { } }
71
+ it "should have the select-all checkbox" do
72
+ expect(page).to have_selector("input.ev-select-all")
73
+ end
44
74
  end
45
75
  end
46
76
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browse-everything
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carolyn Cole
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2015-10-01 00:00:00.000000000 Z
16
+ date: 2015-10-21 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: rails
@@ -337,6 +337,20 @@ dependencies:
337
337
  - - ">="
338
338
  - !ruby/object:Gem::Version
339
339
  version: '0'
340
+ - !ruby/object:Gem::Dependency
341
+ name: jasmine
342
+ requirement: !ruby/object:Gem::Requirement
343
+ requirements:
344
+ - - "~>"
345
+ - !ruby/object:Gem::Version
346
+ version: '2.3'
347
+ type: :development
348
+ prerelease: false
349
+ version_requirements: !ruby/object:Gem::Requirement
350
+ requirements:
351
+ - - "~>"
352
+ - !ruby/object:Gem::Version
353
+ version: '2.3'
340
354
  description: AJAX/Rails engine file browser for cloud storage services
341
355
  email:
342
356
  - cam156@psu.edu
@@ -401,10 +415,16 @@ files:
401
415
  - spec/fixtures/file_system/file_1.pdf
402
416
  - spec/fixtures/vcr_cassettes/dropbox.yml
403
417
  - spec/fixtures/vcr_cassettes/retriever.yml
418
+ - spec/javascripts/behavior_spec.js
419
+ - spec/javascripts/helpers/jasmine-jquery.js
420
+ - spec/javascripts/jasmine_spec.rb
421
+ - spec/javascripts/support/jasmine.yml
422
+ - spec/javascripts/support/jasmine_helper.rb
404
423
  - spec/spec_helper.rb
405
424
  - spec/support/app/controllers/file_handler_controller.rb
406
425
  - spec/support/app/views/file_handler/index.html.erb
407
426
  - spec/support/app/views/file_handler/main.html.erb
427
+ - spec/support/rake.rb
408
428
  - spec/test_app_templates/lib/generators/test_app_generator.rb
409
429
  - spec/unit/base_spec.rb
410
430
  - spec/unit/browse_everything_helper_spec.rb
@@ -452,10 +472,16 @@ test_files:
452
472
  - spec/fixtures/file_system/file_1.pdf
453
473
  - spec/fixtures/vcr_cassettes/dropbox.yml
454
474
  - spec/fixtures/vcr_cassettes/retriever.yml
475
+ - spec/javascripts/behavior_spec.js
476
+ - spec/javascripts/helpers/jasmine-jquery.js
477
+ - spec/javascripts/jasmine_spec.rb
478
+ - spec/javascripts/support/jasmine.yml
479
+ - spec/javascripts/support/jasmine_helper.rb
455
480
  - spec/spec_helper.rb
456
481
  - spec/support/app/controllers/file_handler_controller.rb
457
482
  - spec/support/app/views/file_handler/index.html.erb
458
483
  - spec/support/app/views/file_handler/main.html.erb
484
+ - spec/support/rake.rb
459
485
  - spec/test_app_templates/lib/generators/test_app_generator.rb
460
486
  - spec/unit/base_spec.rb
461
487
  - spec/unit/browse_everything_helper_spec.rb