12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- require 'spec_helper'
- describe SortableTable do
- class SortableTestController
- attr_accessor :params
- def self.helper(foo)
- end
- include SortableTable
- public :set_table_sort
- public :table_sort
- end
- describe "#set_table_sort" do
- let(:controller) { SortableTestController.new }
- let(:default) { { column2: :asc }}
- let(:options) { { sorts: %w[column1 column2], default: default } }
- it "uses a default when no sort is given" do
- controller.params = {}
- controller.set_table_sort options
- controller.table_sort.should == default
- end
- it "applies the given sort when one is passed in" do
- controller.params = { sort: "column1.desc" }
- controller.set_table_sort options
- controller.table_sort.should == { column1: :desc }
- controller.params = { sort: "column1.asc" }
- controller.set_table_sort options
- controller.table_sort.should == { column1: :asc }
- controller.params = { sort: "column2.desc" }
- controller.set_table_sort options
- controller.table_sort.should == { column2: :desc }
- end
- it "ignores unknown directions" do
- controller.params = { sort: "column1.foo" }
- controller.set_table_sort options
- controller.table_sort.should == { column1: :asc }
- controller.params = { sort: "column1.foo drop tables" }
- controller.set_table_sort options
- controller.table_sort.should == { column1: :asc }
- end
- it "ignores unknown columns" do
- controller.params = { sort: "foo.asc" }
- controller.set_table_sort options
- controller.table_sort.should == default
- controller.params = { sort: ";drop table;.asc" }
- controller.set_table_sort options
- controller.table_sort.should == default
- end
- end
- end
|