Renamed helpers to correspond to renamed Controller classes.
[merb_radiant.git] / radiant_specs / test / functional / .svn / text-base / extension_load_order_test.rb.svn-base
blob4e35d7aeec9be83e3a6983e0244631ca0c95be20
1 require File.dirname(__FILE__) + '/../test_helper'
2 require 'ostruct'
4 class ExtensionLoaderTest < Test::Unit::TestCase
5   def setup
6     Dependencies.mechanism = :load
7     @config = Radiant::Configuration.new
8     @config.extension_paths = [ "#{TEST_ROOT}/fixtures/extensions" ]
9     @initializer = OpenStruct.new
10     @initializer.configuration = @config
12     @instance = Radiant::ExtensionLoader.instance {|l| l.initializer = @initializer }
13     @instance.instance_variable_set '@all_extension_roots', nil
14     @instance.instance_variable_set '@load_extension_roots', nil
15   end
17   def teardown
18     Dependencies.mechanism = :require
19   end
21   def test_load_all_alphabetically_if_none_specified
22     @config.extensions = [:all]
23     assert_extension_load_order %w{basic overriding load_order_blue load_order_green load_order_red}
24   end
26   def test_load_none_if_none_specified
27     @config.extensions = []
28     assert_extension_load_order []
29   end
31   def test_only_specified_extensions_loaded
32     @config.extensions = [:basic, :load_order_green]
33     assert_extension_load_order %w{basic load_order_green}
34   end
36   def test_specified_extension_load_order_with_all_at_end
37     @config.extensions = [:load_order_green, :all]
38     assert_extension_load_order %w{load_order_green basic overriding load_order_blue load_order_red}
39   end
41   def test_specified_extension_load_order_with_all_at_start
42     @config.extensions = [:all, :load_order_blue]
43     assert_extension_load_order %w{basic overriding load_order_green load_order_red load_order_blue}
44   end
46   def test_specified_extension_load_order_with_all_in_middle
47     @config.extensions = [:load_order_green, :all, :basic]
48     assert_extension_load_order %w{load_order_green overriding load_order_blue load_order_red basic}
49   end
51   def test_error_when_config_extensions_is_not_array
52     @config.extensions = nil
53     assert_raise NoMethodError do
54       @instance.extension_load_paths
55     end
56   end
58   private
59     def assert_extension_load_order(requested_extension_names)
60       extension_paths = @instance.send(:load_extension_roots)
61       extension_names = extension_paths.map {|p| File.basename(p).sub(/^\d+_/,'')}
62       assert_equal requested_extension_names, extension_names
63     end
64 end