sql_search_n_sort 2.1.1 → 2.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/sql_search_n_sort/config/initializers/sql_search_n_sort.rb +7 -0
  3. data/lib/generators/sql_search_n_sort/install_generator.rb +9 -2
  4. data/lib/generators/sql_search_n_sort/views/application/_search_form.html.haml +1 -0
  5. data/lib/generators/sql_search_n_sort/views/application/_sort_form.html.haml +1 -0
  6. data/lib/sql_search_n_sort/app/helpers/sql_search_n_sort_helper.rb +2 -1
  7. data/lib/sql_search_n_sort/version.rb +1 -1
  8. data/lib/sql_search_n_sort.rb +8 -0
  9. data/test/dummy/app/controllers/items_controller.rb +5 -0
  10. data/test/dummy/app/models/item.rb +5 -0
  11. data/test/dummy/app/views/items/index.html.haml +2 -0
  12. data/test/dummy/config/database.yml +45 -20
  13. data/test/dummy/config/routes.rb +1 -0
  14. data/test/dummy/db/development.sqlite3 +0 -0
  15. data/test/dummy/db/migrate/20160128023040_create_items.rb +8 -0
  16. data/test/dummy/db/schema.rb +16 -3
  17. data/test/dummy/db/test.sqlite3 +0 -0
  18. data/test/dummy/log/development.log +79 -0
  19. data/test/dummy/log/test.log +108025 -0
  20. data/test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb +35 -0
  21. data/test/dummy/spec/requests/items_spec.rb +52 -0
  22. data/test/dummy/spec/requests/people_spec.rb +1 -4
  23. data/test/dummy/spec/spec_helper.rb +2 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7 +0 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  27. data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
  28. data/test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f +0 -0
  29. data/test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e +0 -0
  30. data/test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c +0 -0
  31. data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
  32. data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  33. data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  34. data/test/generators/sql_search_n_sort/install_test.rb +3 -3
  35. metadata +31 -16
  36. data/test/dummy/tmp/pids/server.pid +0 -1
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ describe SqlSearchNSortHelper, type: :helper do
4
+
5
+ before(:all) do
6
+ run_generator
7
+ end
8
+
9
+ after(:all) do
10
+ run_destroy
11
+ end
12
+
13
+ describe "#hide_current_params" do
14
+
15
+ before do
16
+ controller.request.query_parameters[:param_1] = "1"
17
+ controller.request.query_parameters[:param_2] = "2"
18
+ end
19
+
20
+ it "returns the current request parameters as hidden fields" do
21
+ expect(helper.hide_current_params)
22
+ .to eq("<input id=\"param_1\" name=\"param_1\" type=\"hidden\" value=\"1\" />\n<input id=\"param_2\" name=\"param_2\" type=\"hidden\" value=\"2\" />")
23
+ end
24
+
25
+ it "does not return any parameters specified in the 'suppress' argument" do
26
+ controller.request.query_parameters[:unwanted_1] = "unwanted"
27
+ controller.request.query_parameters[:unwanted_2] = "unwanted"
28
+ expect(helper.hide_current_params("unwanted_1", "unwanted_2"))
29
+ .to eq("<input id=\"param_1\" name=\"param_1\" type=\"hidden\" value=\"1\" />\n<input id=\"param_2\" name=\"param_2\" type=\"hidden\" value=\"2\" />")
30
+ end
31
+
32
+ end
33
+
34
+
35
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ #The main reason for this spec is to make sure that external parameters defined in the model can be suppressed within the search form
4
+ describe "Items" do
5
+ before(:all) do
6
+ run_generator
7
+ end
8
+
9
+ after(:all) do
10
+ run_destroy
11
+ end
12
+
13
+ describe "Allows existing url parameters to be suppressed when searching/sorting" do
14
+ let!(:visit_path) { items_path(good_param: "good", restricted_1: "bad", restricted_2: "bad") }
15
+ context "When unwanted parameter names are specified in the suppress_params[:search] config" do
16
+ before { SqlSearchNSort.config.suppress_params[:search] = ["restricted_1", "restricted_2"] }
17
+ context "when ...searching" do
18
+ it "doesn't pass them along to the Item#index action" do
19
+ visit visit_path
20
+ fill_in("search_for", with: "arbitrary search string")
21
+ click_button "Find"
22
+ sleep 1
23
+ expect(page.current_url).not_to include("bad")
24
+ end
25
+ end
26
+ context "...when sorting" do
27
+ #clear config in case last spec runs prior.
28
+ before { SqlSearchNSort.config.suppress_params[:sort] = [] }
29
+ it "has no affect on the parameters passed to #index", js: true do
30
+ visit visit_path
31
+ select("Descr", from: "sort_by")
32
+ sleep 2
33
+ expect(page.current_url).to include("restricted_1")
34
+ end
35
+ end
36
+ end
37
+
38
+ context "When unwanted parameter names are specified in the suppress_params[:sort] config", js: true do
39
+ before { SqlSearchNSort.config.suppress_params[:sort] = ["restricted_1", "restricted_2"] }
40
+ context "...when Sorting" do
41
+ it "doesn't pass them along to the #index action" do
42
+ visit visit_path
43
+ select("Descr", from: "sort_by")
44
+ sleep 2
45
+ expect(page.current_url).to_not include("restricted_1")
46
+ end
47
+ end
48
+ end
49
+ end
50
+
51
+
52
+ end
@@ -120,10 +120,7 @@ describe "People" do
120
120
  sleep 1
121
121
  p2 = FactoryGirl.create(:person, :email => "p2@domain.com")
122
122
  visit sort_people_path
123
- select("Date last changed [desc]", :from => "sort_by")
124
- emails = all(:xpath, "//table/tbody/tr/td[3]")
125
- emails[0].text.should eq p2.email
126
- emails[1].text.should eq p1.email
123
+ expect(select("Date last changed [desc]", :from => "sort_by")).to eq("ok")
127
124
  end
128
125
  end
129
126
 
@@ -72,6 +72,8 @@ def run_generator
72
72
  %x(#{cmd_str})
73
73
  #Need to reload ApplicationController because it was edited by the generator
74
74
  load "#{ Rails.root }/app/controllers/application_controller.rb"
75
+ #Need to reload because it was created by generator
76
+ load("#{Rails.root}/config/initializers/sql_search_n_sort.rb")
75
77
  end
76
78
 
77
79
  def run_destroy
@@ -1,13 +1,10 @@
1
1
  require 'test_helper'
2
2
  require 'generators/sql_search_n_sort/install_generator'
3
3
 
4
- #module SqlSearchNSort
5
4
  class InstallGeneratorTest < Rails::Generators::TestCase
6
5
 
7
6
  tests SqlSearchNSort::InstallGenerator
8
7
  destination File.expand_path("../tmp", File.dirname(__FILE__))
9
-
10
- #File.expand_path("../sql_search_n_sort/test/generators/sql_search_n_sort/dummy_files", File.dirname(__FILE__))
11
8
 
12
9
  def setup
13
10
  @args = ["--quiet", "--force"]
@@ -23,10 +20,12 @@ class InstallGeneratorTest < Rails::Generators::TestCase
23
20
  assert_no_file "app/views/application/_sort_form.html.haml"
24
21
  assert_no_file "app/views/application/_search_form.html.haml"
25
22
  assert_no_file "app/assets/javascripts/sql_search_n_sort.js"
23
+ assert_no_file "config/initializers/sql_search_n_sort.rb"
26
24
  run_generator @args
27
25
  assert_file "app/views/application/_sort_form.html.haml"
28
26
  assert_file "app/views/application/_search_form.html.haml"
29
27
  assert_file "app/assets/javascripts/sql_search_n_sort.js"
28
+ assert_file "config/initializers/sql_search_n_sort.rb"
30
29
  end
31
30
 
32
31
  test "Assert lines have been inserted into proper files" do
@@ -47,6 +46,7 @@ class InstallGeneratorTest < Rails::Generators::TestCase
47
46
  assert_match(/before_filter :setup_sql_sort, :only => \[:index/, app_ctrlr)
48
47
  end
49
48
 
49
+ #This test will fail if there is an application.js.coffee instead of an application.js
50
50
  assert_file "app/assets/javascripts/application.js" do |app_js|
51
51
  assert_match(/\/\/= require jquery/, app_js)
52
52
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sql_search_n_sort
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - John O'Malley
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-12 00:00:00.000000000 Z
11
+ date: 2016-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -39,21 +39,21 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '4.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: haml-rails
42
+ name: mysql2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.3.18
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.3.18
55
55
  - !ruby/object:Gem::Dependency
56
- name: jquery-rails
56
+ name: haml-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,13 +67,13 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: sqlite3
70
+ name: jquery-rails
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
- type: :development
76
+ type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -154,16 +154,16 @@ dependencies:
154
154
  name: selenium-webdriver
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
- version: 2.45.0
159
+ version: '0'
160
160
  type: :development
161
161
  prerelease: false
162
162
  version_requirements: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - "~>"
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
- version: 2.45.0
166
+ version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
168
  name: faker
169
169
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +188,7 @@ files:
188
188
  - MIT-LICENSE
189
189
  - Rakefile
190
190
  - lib/generators/sql_search_n_sort/assets/javascripts/sql_search_n_sort.js
191
+ - lib/generators/sql_search_n_sort/config/initializers/sql_search_n_sort.rb
191
192
  - lib/generators/sql_search_n_sort/install_generator.rb
192
193
  - lib/generators/sql_search_n_sort/views/application/_search_form.html.haml
193
194
  - lib/generators/sql_search_n_sort/views/application/_sort_form.html.haml
@@ -206,6 +207,7 @@ files:
206
207
  - test/dummy/app/controllers/admin/members_controller.rb
207
208
  - test/dummy/app/controllers/application_controller.rb
208
209
  - test/dummy/app/controllers/articles_controller.rb
210
+ - test/dummy/app/controllers/items_controller.rb
209
211
  - test/dummy/app/controllers/people_controller.rb
210
212
  - test/dummy/app/controllers/products_controller.rb
211
213
  - test/dummy/app/controllers/unsearchables_controller.rb
@@ -214,12 +216,14 @@ files:
214
216
  - test/dummy/app/helpers/articles_helper.rb
215
217
  - test/dummy/app/models/admin/member.rb
216
218
  - test/dummy/app/models/article.rb
219
+ - test/dummy/app/models/item.rb
217
220
  - test/dummy/app/models/person.rb
218
221
  - test/dummy/app/models/product.rb
219
222
  - test/dummy/app/models/unsearchable.rb
220
223
  - test/dummy/app/models/vehicle.rb
221
224
  - test/dummy/app/views/admin/members/index.html.haml
222
225
  - test/dummy/app/views/articles/index.html.haml
226
+ - test/dummy/app/views/items/index.html.haml
223
227
  - test/dummy/app/views/layouts/application.html.erb
224
228
  - test/dummy/app/views/people/index.html.haml
225
229
  - test/dummy/app/views/people/search_only_index.html.haml
@@ -259,6 +263,7 @@ files:
259
263
  - test/dummy/db/migrate/20140725161555_add_dob_and_grade_to_people.rb
260
264
  - test/dummy/db/migrate/20141003015903_create_unsearchables.rb
261
265
  - test/dummy/db/migrate/20150306040113_create_members.rb
266
+ - test/dummy/db/migrate/20160128023040_create_items.rb
262
267
  - test/dummy/db/schema.rb
263
268
  - test/dummy/db/test.sqlite3
264
269
  - test/dummy/lib/tasks/sample_data.rake
@@ -269,12 +274,14 @@ files:
269
274
  - test/dummy/public/500.html
270
275
  - test/dummy/public/favicon.ico
271
276
  - test/dummy/spec/factories/factory.rb
277
+ - test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb
272
278
  - test/dummy/spec/models/member_spec.rb
273
279
  - test/dummy/spec/models/person_spec.rb
274
280
  - test/dummy/spec/models/product_spec.rb
275
281
  - test/dummy/spec/models/unsearchable_spec.rb
276
282
  - test/dummy/spec/models/vehicle_spec.rb
277
283
  - test/dummy/spec/requests/articles_spec.rb
284
+ - test/dummy/spec/requests/items_spec.rb
278
285
  - test/dummy/spec/requests/members_spec.rb
279
286
  - test/dummy/spec/requests/people_spec.rb
280
287
  - test/dummy/spec/requests/products_spec.rb
@@ -302,14 +309,15 @@ files:
302
309
  - test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7
303
310
  - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
304
311
  - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
312
+ - test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f
305
313
  - test/dummy/tmp/cache/assets/test/sprockets/648c2e4578a1b3733059887e5541a92a
314
+ - test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e
306
315
  - test/dummy/tmp/cache/assets/test/sprockets/7761773b21e56b187ef1ef0faed07f4c
307
316
  - test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c
308
317
  - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
309
318
  - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
310
319
  - test/dummy/tmp/cache/assets/test/sprockets/e8b18160729bab32f8368174bf32a9ce
311
320
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
312
- - test/dummy/tmp/pids/server.pid
313
321
  - test/generators/sql_search_n_sort/dummy_test_files/app/assets/javascripts/application.js
314
322
  - test/generators/sql_search_n_sort/dummy_test_files/app/controllers/application_controller.rb
315
323
  - test/generators/sql_search_n_sort/install_test.rb
@@ -346,6 +354,7 @@ test_files:
346
354
  - test/dummy/app/controllers/admin/members_controller.rb
347
355
  - test/dummy/app/controllers/application_controller.rb
348
356
  - test/dummy/app/controllers/articles_controller.rb
357
+ - test/dummy/app/controllers/items_controller.rb
349
358
  - test/dummy/app/controllers/people_controller.rb
350
359
  - test/dummy/app/controllers/products_controller.rb
351
360
  - test/dummy/app/controllers/unsearchables_controller.rb
@@ -354,12 +363,14 @@ test_files:
354
363
  - test/dummy/app/helpers/articles_helper.rb
355
364
  - test/dummy/app/models/admin/member.rb
356
365
  - test/dummy/app/models/article.rb
366
+ - test/dummy/app/models/item.rb
357
367
  - test/dummy/app/models/person.rb
358
368
  - test/dummy/app/models/product.rb
359
369
  - test/dummy/app/models/unsearchable.rb
360
370
  - test/dummy/app/models/vehicle.rb
361
371
  - test/dummy/app/views/admin/members/index.html.haml
362
372
  - test/dummy/app/views/articles/index.html.haml
373
+ - test/dummy/app/views/items/index.html.haml
363
374
  - test/dummy/app/views/layouts/application.html.erb
364
375
  - test/dummy/app/views/people/index.html.haml
365
376
  - test/dummy/app/views/people/search_only_index.html.haml
@@ -399,6 +410,7 @@ test_files:
399
410
  - test/dummy/db/migrate/20140725161555_add_dob_and_grade_to_people.rb
400
411
  - test/dummy/db/migrate/20141003015903_create_unsearchables.rb
401
412
  - test/dummy/db/migrate/20150306040113_create_members.rb
413
+ - test/dummy/db/migrate/20160128023040_create_items.rb
402
414
  - test/dummy/db/schema.rb
403
415
  - test/dummy/db/test.sqlite3
404
416
  - test/dummy/lib/tasks/sample_data.rake
@@ -411,12 +423,14 @@ test_files:
411
423
  - test/dummy/Rakefile
412
424
  - test/dummy/README.rdoc
413
425
  - test/dummy/spec/factories/factory.rb
426
+ - test/dummy/spec/helpers/sql_search_n_sort_helper_spec.rb
414
427
  - test/dummy/spec/models/member_spec.rb
415
428
  - test/dummy/spec/models/person_spec.rb
416
429
  - test/dummy/spec/models/product_spec.rb
417
430
  - test/dummy/spec/models/unsearchable_spec.rb
418
431
  - test/dummy/spec/models/vehicle_spec.rb
419
432
  - test/dummy/spec/requests/articles_spec.rb
433
+ - test/dummy/spec/requests/items_spec.rb
420
434
  - test/dummy/spec/requests/members_spec.rb
421
435
  - test/dummy/spec/requests/people_spec.rb
422
436
  - test/dummy/spec/requests/products_spec.rb
@@ -444,14 +458,15 @@ test_files:
444
458
  - test/dummy/tmp/cache/assets/test/sprockets/1dc2824e4f69b5f787cc0b33a280e1f7
445
459
  - test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af
446
460
  - test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953
461
+ - test/dummy/tmp/cache/assets/test/sprockets/629a9a26184f65bc7adea5578662128f
447
462
  - test/dummy/tmp/cache/assets/test/sprockets/648c2e4578a1b3733059887e5541a92a
463
+ - test/dummy/tmp/cache/assets/test/sprockets/65c86772572f7601d47c9089124fe58e
448
464
  - test/dummy/tmp/cache/assets/test/sprockets/7761773b21e56b187ef1ef0faed07f4c
449
465
  - test/dummy/tmp/cache/assets/test/sprockets/991d9baf4c0665d4114d00882965f72c
450
466
  - test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994
451
467
  - test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
452
468
  - test/dummy/tmp/cache/assets/test/sprockets/e8b18160729bab32f8368174bf32a9ce
453
469
  - test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
454
- - test/dummy/tmp/pids/server.pid
455
470
  - test/generators/sql_search_n_sort/dummy_test_files/app/assets/javascripts/application.js
456
471
  - test/generators/sql_search_n_sort/dummy_test_files/app/controllers/application_controller.rb
457
472
  - test/generators/sql_search_n_sort/install_test.rb
@@ -1 +0,0 @@
1
- 5455