diff --git a/lib/guilded/guilder.rb b/lib/guilded/guilder.rb index 2d2721e..019080b 100644 --- a/lib/guilded/guilder.rb +++ b/lib/guilded/guilder.rb @@ -28,10 +28,11 @@ class Guilder def initialize #:nodoc: if defined?( GUILDED_CONFIG ) - configure_guilded + @config = GUILDED_CONFIG else raise Guilded::Exceptions::MissingConfiguration end + configure_guilded @initialized_at = Time.now @g_elements = Hash.new @g_data_elements = Hash.new @@ -196,19 +197,19 @@ def generate_css_cache_name( sources ) #:nodoc: protected def configure_guilded #:nodoc: - @js_path = GUILDED_CONFIG[:js_path] - @js_folder = GUILDED_CONFIG[:js_folder] - @jquery_js = GUILDED_CONFIG[:jquery_js] - @mootools_js = GUILDED_CONFIG[:mootools_js] - @jquery_folder = GUILDED_CONFIG[:jquery_folder] || 'jquery/' - @mootools_folder = GUILDED_CONFIG[:mootools_folder] || 'mootools/' + @js_path = @config[:js_path] + @js_folder = @config[:js_folder] + @jquery_js = @config[:jquery_js] + @mootools_js = @config[:mootools_js] + @jquery_folder = @config[:jquery_folder] || 'jquery/' + @mootools_folder = @config[:mootools_folder] || 'mootools/' @guilded_js = 'guilded.min.js' @url_js = 'jquery-url.min.js' - @css_path = GUILDED_CONFIG[:css_path] - @css_folder = GUILDED_CONFIG[:css_folder] - @reset_css = GUILDED_CONFIG[:reset_css] - #@do_reset_css = GUILDED_CONFIG[:do_reset_css] - @env = GUILDED_CONFIG[:environment] + @css_path = @config[:css_path] + @css_folder = @config[:css_folder] + @reset_css = @config[:reset_css] + #@do_reset_css = @config[:do_reset_css] + @env = @config[:environment] @env ||= :production @js_path.freeze @css_path.freeze diff --git a/lib/guilded/rails/helpers.rb b/lib/guilded/rails/helpers.rb index 7d9b6b7..3463224 100644 --- a/lib/guilded/rails/helpers.rb +++ b/lib/guilded/rails/helpers.rb @@ -18,6 +18,8 @@ def self.resolve_rest_path_helpers( ar_obj_col_or_class, options={} ) ar_obj = ar_obj_col_or_class elsif ar_obj_col_or_class.is_a?( Class ) ar_obj = ar_obj_col_or_class.new + else + ar_obj = ar_obj_col_or_class end plural_ar_type = ar_obj.class.to_s.tableize diff --git a/spec/guilded/component_def_spec.rb b/spec/guilded/component_def_spec.rb deleted file mode 100644 index 81c960f..0000000 --- a/spec/guilded/component_def_spec.rb +++ /dev/null @@ -1,26 +0,0 @@ -require File.dirname(__FILE__) + '/../spec_helper.rb' - -describe "ComponentDef" do - - before(:each) do - @cd = Guilded::ComponentDef.new( 'grid' ) - @cd_exclude = Guilded::ComponentDef.new( 'grid', { :exclude_css => true, :exclude_js => true } ) - end - - it "should exclude css if specified" do - @cd_exclude.should be_exclude_css - end - - it "should exclude js if specified" do - @cd_exclude.should be_exclude_js - end - - it "should not exclude css unless specified" do - @cd.should_not be_exclude_css - end - - it "should not exclude js unless specified" do - @cd.should_not be_exclude_js - end - -end \ No newline at end of file diff --git a/spec/guilded/guilder_spec.rb b/spec/guilded/guilder_spec.rb deleted file mode 100644 index 9193c08..0000000 --- a/spec/guilded/guilder_spec.rb +++ /dev/null @@ -1,79 +0,0 @@ -require File.dirname(__FILE__) + '/../spec_helper.rb' - -describe "Guilder" do - - before(:each) do - @g = Guilded::Guilder.instance - end - - it "should return an instance" do - @g.should_not be_nil - end - - it "should be a singleton" do - @g.initialized_at.should eql Guilded::Guilder.instance.initialized_at - end - - it "should have 1 css source after init" do - @g.combined_css_srcs.size.should eql 1 - end - - it "should have 2 js sources after init" do - @g.combined_js_srcs.size.should eql 2 - end - - it "should increase count by one when you add a component" do - count = @g.count - @g.add( 'grid', { :id => 'grid' } ) - @g.count.should eql( count + 1 ) - end - - it "should respond to add" do - @g.should respond_to :add - end - - it "should respond to count" do - @g.should respond_to :count - end - - it "should respond to reset!" do - @g.should respond_to :reset! - end - - it "should respond to apply" do - @g.should respond_to :apply - end - - it "should respond to generate_javascript_init" do - @g.should respond_to :generate_javascript_init - end - - it "should respond_to js_cache_name" do - @g.should respond_to :js_cache_name - end - - it "should respond_to css_cache_name" do - @g.should respond_to :css_cache_name - end - - it "should respond_to generate_js_cache_name" do - @g.should respond_to :generate_js_cache_name - end - - it "should respond_to generate_css_cache_name" do - @g.should respond_to :generate_css_cache_name - end - - it "should respond_to combined_css_srcs" do - @g.should respond_to :combined_css_srcs - end - - it "should respond_to combined_js_srcs" do - @g.should respond_to :combined_js_srcs - end - - it "should respond_to initialized_at" do - @g.should respond_to :initialized_at - end - -end diff --git a/spec/guilded/rails/helpers_spec.rb b/spec/guilded/rails/helpers_spec.rb deleted file mode 100644 index 1528d47..0000000 --- a/spec/guilded/rails/helpers_spec.rb +++ /dev/null @@ -1,484 +0,0 @@ -require File.dirname(__FILE__) + '/../../spec_helper.rb' - -describe "Guilded::Rails::Helpers" do - - before(:each) do - class Thing - end - class Owner - end - class Parent - end - class Lookup - end - @thing = Thing.new - @things = [Thing.new, Thing.new] - @parent = Parent.new - @owner = Owner.new - @lookup = Lookup.new - @lookups = [Lookup.new, Lookup.new] - end - - it "should have class method resolve_field_methods_and_titles" do - Guilded::Rails::Helpers.should respond_to( :resolve_field_methods_and_titles ) - end - - it "should have class method resolve_rest_path_helpers" do - Guilded::Rails::Helpers.should respond_to( :resolve_rest_path_helpers ) - end - - it "should resolve single level REST paths given ActiveRecord object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing ) - path_helpers[:index_rest_helper].should eql( 'things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve single level REST paths given ActiveRecord collection" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things ) - path_helpers[:index_rest_helper].should eql( 'things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent] ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent] ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by multiple object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent] ) - path_helpers[:index_rest_helper].should eql( 'owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by multiple object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent] ) - path_helpers[:index_rest_helper].should eql( 'owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - # Namespaced - - it "should resolve single level REST paths given ActiveRecord object and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'admin_thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve single level REST paths given ActiveRecord object and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'admin_thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve single level REST paths given ActiveRecord collection and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'admin_thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve single level REST paths given ActiveRecord collection and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'admin_thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent], :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by single object array and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent], :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent], :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by single object array and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent], :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by multiple object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - it "should resolve nested REST paths given ActiveRecord object and scoped by multiple object array and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by multiple object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :namespace => :admin ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - it "should resolve nested REST paths given ActiveRecord collection and scoped by multiple object array and namespace string" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :namespace => 'admin' ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_parent_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner, @parent] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_parent_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner, @parent] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_parent_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner, @parent] ) - end - - # Shallow - - it "should resolve shallow nested REST paths given ActiveRecord object and scoped by single object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve shallow nested REST paths given ActiveRecord collection and scoped by single object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve shallow nested REST paths given ActiveRecord object and scoped by multiple object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'owner_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner] ) - path_helpers[:new_rest_helper].should eql( 'new_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_owner_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner] ) - path_helpers[:delete_rest_helper].should eql( 'delete_owner_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner] ) - end - - it "should resolve shallow nested REST paths given ActiveRecord collection and scoped by multiple object array" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'owner_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner] ) - path_helpers[:new_rest_helper].should eql( 'new_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_owner_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner] ) - path_helpers[:delete_rest_helper].should eql( 'delete_owner_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner] ) - end - - it "should resolve shallow nested REST paths given ActiveRecord object and scoped by single object and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => :admin, :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'admin_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve shallow nested REST paths given ActiveRecord object and scoped by multiple object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => :admin, - :shallow => true ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner] ) - end - - it "should resolve single level REST paths given a polymorphic ActiveRecord object" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @lookup, :polymorphic_type => 'Thing', :polymorphic_as => :lookupable ) - path_helpers[:index_rest_helper].should eql( 'things_path' ) - path_helpers[:index_rest_args].should eql( [] ) - path_helpers[:show_rest_helper].should eql( 'thing_path' ) - path_helpers[:show_rest_args].should eql( [] ) - path_helpers[:new_rest_helper].should eql( 'new_thing_path' ) - path_helpers[:new_rest_args].should eql( [] ) - path_helpers[:edit_rest_helper].should eql( 'edit_thing_path' ) - path_helpers[:edit_rest_args].should eql( [] ) - path_helpers[:delete_rest_helper].should eql( 'delete_thing_path' ) - path_helpers[:delete_rest_args].should eql( [] ) - end - - it "should resolve shallow nested REST paths given a polymorphic ActiveRecord object and scoped by multiple object array and namespace symbol" do - path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @looku, :scoped_by => [@owner, @parent], :namespace => :admin, - :shallow => true, :polymorphic_type => 'Thing', :polymorphic_as => :lookupable ) - path_helpers[:index_rest_helper].should eql( 'admin_owner_parent_things_path' ) - path_helpers[:index_rest_args].should eql( [@owner, @parent] ) - path_helpers[:show_rest_helper].should eql( 'admin_owner_thing_path' ) - path_helpers[:show_rest_args].should eql( [@owner] ) - path_helpers[:new_rest_helper].should eql( 'new_admin_owner_parent_thing_path' ) - path_helpers[:new_rest_args].should eql( [@owner, @parent] ) - path_helpers[:edit_rest_helper].should eql( 'edit_admin_owner_thing_path' ) - path_helpers[:edit_rest_args].should eql( [@owner] ) - path_helpers[:delete_rest_helper].should eql( 'delete_admin_owner_thing_path' ) - path_helpers[:delete_rest_args].should eql( [@owner] ) - end - -end \ No newline at end of file diff --git a/spec/guilded_spec.rb b/spec/guilded_spec.rb deleted file mode 100644 index 5d16575..0000000 --- a/spec/guilded_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -require File.dirname(__FILE__) + '/spec_helper.rb' - -describe "Guilded" do - - before(:each) do - @g = Guilded::Guilder.instance - end - -end diff --git a/spec/spec.opts b/spec/spec.opts deleted file mode 100644 index cf6add7..0000000 --- a/spec/spec.opts +++ /dev/null @@ -1 +0,0 @@ ---colour \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb deleted file mode 100644 index e418448..0000000 --- a/spec/spec_helper.rb +++ /dev/null @@ -1,10 +0,0 @@ -begin - require 'spec' -rescue LoadError - require 'rubygems' - gem 'rspec' - require 'spec' -end - -$:.unshift(File.dirname(__FILE__) + '/../lib') -require 'guilded' diff --git a/test/guilded/rails/helpers_test.rb b/test/guilded/rails/helpers_test.rb new file mode 100644 index 0000000..47f5603 --- /dev/null +++ b/test/guilded/rails/helpers_test.rb @@ -0,0 +1,1450 @@ +require 'test_helper' + +class HelpersTest < Test::Unit::TestCase + context "The helpers" do + setup do + @thing = Thing.new + @things = [Thing.new, Thing.new] + @parent = Parent.new + @owner = Owner.new + @lookup = Lookup.new + @lookups = [Lookup.new, Lookup.new] + end + + should "have class method resolve_field_methods_and_titles" do + assert Guilded::Rails::Helpers.respond_to? :resolve_field_methods_and_titles + end + + should "have class method resolve_rest_path_helpers" do + assert Guilded::Rails::Helpers.respond_to? :resolve_rest_path_helpers + end + + context "single level REST paths given ActiveRecord object" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing ) + end + + should "resolve index path" do + assert_equal 'things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given ActiveRecord collection" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things ) + end + + should "resolve index path" do + assert_equal 'things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent ) + end + + should "resolve index path" do + assert_equal 'parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent] ) + end + + should "resolve index path" do + assert_equal 'parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by single object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent] ) + end + + should "resolve index path" do + assert_equal 'parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by multiple object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent] ) + end + + should "resolve index path" do + assert_equal 'owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by multiple object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent] ) + end + + should "resolve index path" do + assert_equal 'owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given ActiveRecord object and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given ActiveRecord object and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given ActiveRecord collection and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given ActiveRecord collection and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by single object and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by single object and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent], :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by single object array and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@parent], :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by single object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent], :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by single object array and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@parent], :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by multiple object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord object and scoped by multiple object array and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by multiple object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :namespace => :admin ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "nested REST paths given ActiveRecord collection and scoped by multiple object array and namespace string" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :namespace => 'admin' ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_parent_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner, @parent], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_parent_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner, @parent], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_parent_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner, @parent], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord object and scoped by single object" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :shallow => true ) + end + + should "resolve index path" do + assert_equal 'parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord collection and scoped by single object" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => @parent, :shallow => true ) + end + + should "resolve index path" do + assert_equal 'parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord object and scoped by multiple object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :shallow => true ) + end + + should "resolve index path" do + assert_equal 'owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'owner_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_owner_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_owner_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord collection and scoped by multiple object array" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @things, :scoped_by => [@owner, @parent], :shallow => true ) + end + + should "resolve index path" do + assert_equal 'owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'owner_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_owner_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_owner_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord object and scoped by single object and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => @parent, :namespace => :admin, :shallow => true ) + end + + should "resolve index path" do + assert_equal 'admin_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given ActiveRecord object and scoped by multiple object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @thing, :scoped_by => [@owner, @parent], :namespace => :admin, + :shallow => true ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner], @path_helpers[:delete_rest_args] + end + end + + context "single level REST paths given a polymorphic ActiveRecord object" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @lookup, :polymorphic_type => 'Thing', :polymorphic_as => :lookupable ) + end + + should "resolve index path" do + assert_equal 'things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [], @path_helpers[:delete_rest_args] + end + end + + context "shallow nested REST paths given a polymorphic ActiveRecord object and scoped by multiple object array and namespace symbol" do + setup do + @path_helpers = Guilded::Rails::Helpers.resolve_rest_path_helpers( @looku, :scoped_by => [@owner, @parent], :namespace => :admin, + :shallow => true, :polymorphic_type => 'Thing', :polymorphic_as => :lookupable ) + end + + should "resolve index path" do + assert_equal 'admin_owner_parent_things_path', @path_helpers[:index_rest_helper] + end + + should "resolve index args" do + assert_equal [@owner, @parent], @path_helpers[:index_rest_args] + end + + should "resolve show path" do + assert_equal 'admin_owner_thing_path', @path_helpers[:show_rest_helper] + end + + should "resolve show args" do + assert_equal [@owner], @path_helpers[:show_rest_args] + end + + should "resolve new path" do + assert_equal 'new_admin_owner_parent_thing_path', @path_helpers[:new_rest_helper] + end + + should "resolve new args" do + assert_equal [@owner, @parent], @path_helpers[:new_rest_args] + end + + should "resolve edit path" do + assert_equal 'edit_admin_owner_thing_path', @path_helpers[:edit_rest_helper] + end + + should "resolve edit args" do + assert_equal [@owner], @path_helpers[:edit_rest_args] + end + + should "resolve delete path" do + assert_equal 'delete_admin_owner_thing_path', @path_helpers[:delete_rest_helper] + end + + should "resolve delete args" do + assert_equal [@owner], @path_helpers[:delete_rest_args] + end + end + end +end \ No newline at end of file diff --git a/test/test_helper.rb b/test/test_helper.rb index 12c5cc0..1b1bea8 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -19,3 +19,12 @@ class Test::Unit::TestCase :reset_css => "reset-min.css", # from the css_path :environment => 'development' } + +class Thing +end +class Owner +end +class Parent +end +class Lookup +end