sorting_table_for 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  SortingTableFor::TableBuilder.default_boolean = [I18n.t(:bool_true, :scope => [:sorting_table_for, :columns]), I18n.t(:bool_false, :scope => [:sorting_table_for, :columns])]
16
19
  SortingTableFor::TableBuilder.i18n_default_format_date = :default
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -21,7 +24,7 @@ describe SortingTableFor, :type => :helper do
21
24
  html = table.columns
22
25
  html.should have_comp_tag("tbody", :count => 1)
23
26
  html.should have_comp_tag("tr", :count => (@users.size + 1))
24
- html.should have_comp_tag("td", :count => (@users.size * (User.content_columns.size + 2)) + 1)
27
+ html.should have_comp_tag("td", :count => (@users.size * (SortingTableForUser.content_columns.size + 2)) + 1)
25
28
  end
26
29
  end
27
30
 
@@ -33,7 +36,7 @@ describe SortingTableFor, :type => :helper do
33
36
 
34
37
  it "should add colspan for total entries" do
35
38
  helper.sorting_table_for(@users) do |table|
36
- table.columns.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
39
+ table.columns.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
37
40
  end
38
41
  end
39
42
 
@@ -45,7 +48,7 @@ describe SortingTableFor, :type => :helper do
45
48
 
46
49
  it "should add colspan for total entries" do
47
50
  helper.sorting_table_for(@users) do |table|
48
- table.columns.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
51
+ table.columns.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
49
52
  end
50
53
  end
51
54
 
@@ -85,7 +88,7 @@ describe SortingTableFor, :type => :helper do
85
88
  it "should have option colspan" do
86
89
  table_html = helper.sorting_table_for(@users) do |table|
87
90
  html = table.columns :colspan => 5
88
- html.should have_comp_tag('td[colspan="5"]', :count => (@users.size * User.content_columns.size))
91
+ html.should have_comp_tag('td[colspan="5"]', :count => (@users.size * SortingTableForUser.content_columns.size))
89
92
  end
90
93
  end
91
94
 
@@ -347,7 +350,7 @@ describe SortingTableFor, :type => :helper do
347
350
  helper.sorting_table_for(@users) do |table|
348
351
  html = table.columns
349
352
  html.should_not match("Total Entries " + @users.size.to_s)
350
- html.should_not match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
353
+ html.should_not match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
351
354
  end
352
355
  end
353
356
 
@@ -356,7 +359,7 @@ describe SortingTableFor, :type => :helper do
356
359
  helper.sorting_table_for(@users) do |table|
357
360
  html = table.columns
358
361
  html.should match("Total Entries " + @users.size.to_s)
359
- html.should match("<td colspan=\"" + (User.content_columns.size + 2).to_s + "\">")
362
+ html.should match("<td colspan=\"" + (SortingTableForUser.content_columns.size + 2).to_s + "\">")
360
363
  end
361
364
  end
362
365
 
@@ -383,7 +386,7 @@ describe SortingTableFor, :type => :helper do
383
386
  it "should edit default actions" do
384
387
  SortingTableFor::TableBuilder.default_actions = [:show, :edit_password, :edit, :delete]
385
388
  helper.sorting_table_for(@users) do |table|
386
- table.columns.should have_comp_tag("td", :count => (@users.size * (User.content_columns.size + 4)) + 1)
389
+ table.columns.should have_comp_tag("td", :count => (@users.size * (SortingTableForUser.content_columns.size + 4)) + 1)
387
390
  end
388
391
  end
389
392
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
9
 
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
13
+
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -1,16 +1,19 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
8
8
  describe SortingTableFor, :type => :helper do
9
+
10
+ before :all do
11
+ (SortingTableFor::Tools::rails3?) ? routes_rails3 : routes_rails2
12
+ end
9
13
 
10
14
  before :each do
11
- @users = User.all
12
- helper.stub!(:url_for).and_return('fake_link')
13
- helper.stub!(:params).and_return({ :controller => 'fakes', :action => 'index' })
15
+ @users = SortingTableForUser.all
16
+ helper.stub!(:params).and_return({ :controller => 'sorting_table_for_users', :action => 'index' })
14
17
  helper.output_buffer = ''
15
18
  end
16
19
 
@@ -58,7 +61,7 @@ describe SortingTableFor, :type => :helper do
58
61
  it "should have option colspan" do
59
62
  table_html = helper.sorting_table_for(@users) do |table|
60
63
  html = table.headers :colspan => 5
61
- html.should have_comp_tag('th[colspan="5"]', :count => User.content_columns.size)
64
+ html.should have_comp_tag('th[colspan="5"]', :count => SortingTableForUser.content_columns.size)
62
65
  end
63
66
  end
64
67
 
@@ -217,9 +220,31 @@ describe SortingTableFor, :type => :helper do
217
220
  end
218
221
  html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
219
222
  html.should_not have_comp_tag("th:nth-child(2)[class=cur-sort-not]")
220
- end
221
- end
223
+ end
224
+ end
222
225
 
226
+ it "should works with options sort_as" do
227
+ helper.sorting_table_for(@users) do |table|
228
+ html = table.headers do
229
+ table.header 'my name', :sort_as => :username
230
+ end
231
+ html.should have_comp_tag("th:nth-child(1)", :text => 'my name')
232
+ html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
233
+ end
234
+ end
235
+
236
+ it "should works with options sort_as and sort" do
237
+ helper.sorting_table_for(@users, :sort => false) do |table|
238
+ html = table.headers do
239
+ table.header 'my name', :sort_as => :username, :sort => true
240
+ table.header :price
241
+ end
242
+ html.should have_comp_tag("th:nth-child(1)", :text => 'my name')
243
+ html.should have_comp_tag("th:nth-child(1)[class=cur-sort-not]")
244
+ html.should_not have_comp_tag("th:nth-child(2)[class=cur-sort-not]")
245
+ end
246
+ end
247
+
223
248
  it "should have option colspan" do
224
249
  table_html = helper.sorting_table_for(@users) do |table|
225
250
  html = table.headers do
@@ -360,7 +385,7 @@ describe SortingTableFor, :type => :helper do
360
385
  it "should edit default actions" do
361
386
  SortingTableFor::TableBuilder.default_actions = [:show, :edit_password, :edit, :delete]
362
387
  helper.sorting_table_for(@users) do |table|
363
- table.headers.should have_comp_tag("th", :count => User.column_names.size + 3)
388
+ table.headers.should have_comp_tag("th", :count => SortingTableForUser.column_names.size + 3)
364
389
  end
365
390
  end
366
391
 
@@ -1,7 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
4
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
5
5
 
6
6
  include SortingTableForSpecHelper
7
7
 
@@ -9,11 +9,12 @@ describe SortingTableFor do
9
9
  describe ' #i18n' do
10
10
 
11
11
  before :each do
12
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', '')
12
+ SortingTableFor::TableBuilder.i18n_default_scope = [ :namespace, :controller, :action ]
13
+ SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user')
13
14
  end
14
15
 
15
16
  it "should works by default" do
16
- SortingTableFor::I18n.set_options({}, 'user', '')
17
+ SortingTableFor::I18n.set_options({}, 'user')
17
18
  SortingTableFor::I18n.t(:test_name).should == 'i18n name'
18
19
  end
19
20
 
@@ -28,12 +29,16 @@ describe SortingTableFor do
28
29
  it "should works with i18n options" do
29
30
  SortingTableFor::I18n.t(:my_test, :value => :hello).should == 'say hello'
30
31
  end
32
+
33
+ it "should works with options add_scope" do
34
+ SortingTableFor::I18n.t(:name, :add_scope => [:add_scope]).should == 'add to scope'
35
+ end
31
36
 
32
37
  it "should set namespace scope" do
33
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', 'fake_namespace')
38
+ SortingTableFor::I18n.set_options({:controller => 'fake_namespace/fakes_controller', :action => 'fake_action'}, 'user')
34
39
  SortingTableFor::I18n.t(:name).should == 'fake namespace'
35
40
  end
36
-
41
+
37
42
  it "should set scope with options" do
38
43
  SortingTableFor::TableBuilder.i18n_default_scope = [ :action ]
39
44
  SortingTableFor::I18n.t(:name).should == 'fake action'
@@ -41,7 +46,7 @@ describe SortingTableFor do
41
46
 
42
47
  it "should set scope with all options" do
43
48
  SortingTableFor::TableBuilder.i18n_default_scope = [ :model, :namespace, :controller, :action ]
44
- SortingTableFor::I18n.set_options({:controller => 'fakes_controller', :action => 'fake_action'}, 'user', 'fake_namespace')
49
+ SortingTableFor::I18n.set_options({:controller => 'fake_namespace/fakes_controller', :action => 'fake_action'}, 'user')
45
50
  SortingTableFor::I18n.t(:name).should == 'fake'
46
51
  end
47
52
 
@@ -51,4 +56,4 @@ describe SortingTableFor do
51
56
  end
52
57
 
53
58
  end
54
- end
59
+ end
@@ -1,10 +1,17 @@
1
1
  test:
2
+
2
3
  date:
3
4
  formats:
4
5
  default: "%Y-%m-%d"
5
6
  short: "%b %d"
6
7
  long: "%B %d, %Y"
7
8
 
9
+ time:
10
+ formats:
11
+ default: "%d %B %Y %H:%M:%S"
12
+ short: "%d %b %H:%M"
13
+ long: "%A %d %B %Y %H:%M"
14
+
8
15
  day_names: [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
9
16
  abbr_day_names: [Sun, Mon, Tue, Wed, Thu, Fri, Sat]
10
17
 
@@ -42,12 +49,11 @@ test:
42
49
  strip_insignificant_zeros: false
43
50
 
44
51
  sorting_table_for:
45
- total_entries: "Total Entries {{value}}"
46
52
  columns:
47
53
  bool_true: 'True'
48
54
  bool_false: 'False'
49
55
 
50
- fakes:
56
+ sorting_table_for_users:
51
57
  index:
52
58
  table_caption: 'Quick Caption'
53
59
  edit: 'Edit'
@@ -68,6 +74,7 @@ test:
68
74
  footer:
69
75
  username: 'UserFoot'
70
76
  price: 'PriceFoot'
77
+ total_entries: "Total Entries %{value}"
71
78
 
72
79
  fake_scope:
73
80
  my_test: 'Hello'
@@ -79,6 +86,8 @@ test:
79
86
  my_test: 'say {{value}}'
80
87
  my_add:
81
88
  name: 'fake add'
89
+ add_scope:
90
+ name: "add to scope"
82
91
 
83
92
  user:
84
93
  fake_namespace:
@@ -1,4 +1,5 @@
1
1
  test:
2
+
2
3
  date:
3
4
  formats:
4
5
  default: "%Y-%m-%d"
@@ -42,12 +43,11 @@ test:
42
43
  strip_insignificant_zeros: false
43
44
 
44
45
  sorting_table_for:
45
- total_entries: "Total Entries %{value}"
46
46
  columns:
47
47
  bool_true: 'True'
48
- bool_false: 'False'
48
+ bool_false: 'False'
49
49
 
50
- fakes:
50
+ sorting_table_for_users:
51
51
  index:
52
52
  table_caption: 'Quick Caption'
53
53
  edit: 'Edit'
@@ -68,7 +68,7 @@ test:
68
68
  footer:
69
69
  username: 'UserFoot'
70
70
  price: 'PriceFoot'
71
-
71
+ total_entries: "Total Entries %{value}"
72
72
 
73
73
  fake_scope:
74
74
  my_test: 'Hello'
@@ -80,6 +80,8 @@ test:
80
80
  my_test: 'say %{value}'
81
81
  my_add:
82
82
  name: 'fake add'
83
+ add_scope:
84
+ name: "add to scope"
83
85
 
84
86
  user:
85
87
  fake_namespace:
@@ -1,34 +1,40 @@
1
1
  require 'spec_helper'
2
- require File.expand_path(File.dirname(__FILE__) + '/../fixtures/user')
2
+ require File.expand_path(File.dirname(__FILE__) + '/../fixtures/sorting_table_for_user')
3
3
 
4
4
  describe SortingTableModelScope do
5
5
 
6
6
  describe "# default usage" do
7
7
 
8
8
  it "should do nothing with no option" do
9
- User.sorting_table.all.should == User.all
9
+ SortingTableForUser.sorting_table.all.should == SortingTableForUser.all
10
10
  end
11
11
 
12
12
  it "should do nothing with option nil" do
13
- User.sorting_table(nil).all.should == User.all
13
+ SortingTableForUser.sorting_table(nil).all.should == SortingTableForUser.all
14
14
  end
15
15
 
16
16
  it "should do nothing with all options nil" do
17
- User.sorting_table(nil, nil, nil).all.should == User.all
17
+ SortingTableForUser.sorting_table(nil, nil, nil).all.should == SortingTableForUser.all
18
18
  end
19
19
 
20
20
  it "should raise an error with 4 arguments" do
21
21
  expect {
22
- User.sorting_table(nil, nil, nil, nil).all
22
+ SortingTableForUser.sorting_table(nil, nil, nil, nil).all
23
23
  }.to raise_error { ArgumentError }
24
24
  end
25
25
 
26
26
  it "should works with other scope" do
27
- User.good_position.sorting_table.set_limit(2).all.should == User.find(:all, :conditions => 'position > 3', :limit => 2)
27
+ SortingTableForUser.good_position.sorting_table.set_limit(2).all.should == SortingTableForUser.find(:all, :conditions => 'position > 3', :limit => 2)
28
28
  end
29
29
 
30
30
  it "should not erase other order" do
31
- User.sorting_table(nil, :firstname, :desc).find(:all, :order => 'lastname asc').should == User.find(:all, :order => 'lastname asc, firstname desc')
31
+ # Change order with scope in rails 3.0.3
32
+ if !defined? ActionPack or (ActionPack::VERSION::MAJOR <= 3 and ActionPack::VERSION::MINOR == 0 and ActionPack::VERSION::TINY <= 1)
33
+ current_order = 'lastname asc, firstname desc'
34
+ else
35
+ current_order = 'firstname desc, lastname asc'
36
+ end
37
+ SortingTableForUser.sorting_table(nil, :firstname, :desc).find(:all, :order => 'lastname asc').should == SortingTableForUser.find(:all, :order => current_order)
32
38
  end
33
39
 
34
40
  end
@@ -36,32 +42,32 @@ describe SortingTableModelScope do
36
42
  describe "# params usage" do
37
43
 
38
44
  it "should works with correct params" do
39
- User.sorting_table({ "table_sort" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
45
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "asc" } }).all.should == SortingTableForUser.find(:all, :order => 'username asc')
40
46
  end
41
47
 
42
48
  it "should do nothing with wrong column" do
43
- User.sorting_table({ "table_sort" => { "test" => "asc" } }).all.should == User.all
49
+ SortingTableForUser.sorting_table({ "table_sort" => { "test" => "asc" } }).all.should == SortingTableForUser.all
44
50
  end
45
51
 
46
52
  it "should do nothing with wrong direction" do
47
- User.sorting_table({ "table_sort" => { "username" => "test" } }).all.should == User.all
53
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "test" } }).all.should == SortingTableForUser.all
48
54
  end
49
55
 
50
56
  it "should do nothing with wrong arguments" do
51
- User.sorting_table({ "table_sort" => { "price" => nil } }).all.should == User.all
57
+ SortingTableForUser.sorting_table({ "table_sort" => { "price" => nil } }).all.should == SortingTableForUser.all
52
58
  end
53
59
 
54
60
  it "should do nothing with wrong arguments (2)" do
55
- User.sorting_table({ "table_sort" => nil }).all.should == User.all
61
+ SortingTableForUser.sorting_table({ "table_sort" => nil }).all.should == SortingTableForUser.all
56
62
  end
57
63
 
58
64
  it "should order by params not option" do
59
- User.sorting_table({ "table_sort" => { "username" => "asc" } }, :firstname, :desc).all.should == User.find(:all, :order => 'username asc')
65
+ SortingTableForUser.sorting_table({ "table_sort" => { "username" => "asc" } }, :firstname, :desc).all.should == SortingTableForUser.find(:all, :order => 'username asc')
60
66
  end
61
67
 
62
68
  it "should works with custom param name" do
63
69
  SortingTableFor::TableBuilder.params_sort_table = :sort_my_test
64
- User.sorting_table({ "sort_my_test" => { "username" => "asc" } }).all.should == User.find(:all, :order => 'username asc')
70
+ SortingTableForUser.sorting_table({ "sort_my_test" => { "username" => "asc" } }).all.should == SortingTableForUser.find(:all, :order => 'username asc')
65
71
  end
66
72
 
67
73
  end
@@ -69,19 +75,19 @@ describe SortingTableModelScope do
69
75
  describe "# options usage" do
70
76
 
71
77
  it "should works with option" do
72
- User.sorting_table(nil, :username, :desc).all.should == User.find(:all, :order => 'username desc')
78
+ SortingTableForUser.sorting_table(nil, :username, :desc).all.should == SortingTableForUser.find(:all, :order => 'username desc')
73
79
  end
74
80
 
75
81
  it "should set option asc if not given" do
76
- User.sorting_table(nil, :username).all.should == User.find(:all, :order => 'username asc')
82
+ SortingTableForUser.sorting_table(nil, :username).all.should == SortingTableForUser.find(:all, :order => 'username asc')
77
83
  end
78
84
 
79
85
  it "should do nothing with wrong column" do
80
- User.sorting_table(nil, :test).all.should == User.all
86
+ SortingTableForUser.sorting_table(nil, :test).all.should == SortingTableForUser.all
81
87
  end
82
88
 
83
89
  it "should do nothing with wring direction" do
84
- User.sorting_table(nil, :username, :test).all.should == User.all
90
+ SortingTableForUser.sorting_table(nil, :username, :test).all.should == SortingTableForUser.all
85
91
  end
86
92
 
87
93
  end