Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

root/branches/2-1-caching/railties/test/rails_info_test.rb

Revision 7235, 2.6 kB (checked in by rick, 1 year ago)

misc doc fixes + Add ActiveResource to Rails::Info. Closes #8741, #9008, #9089 [kampers]

Line 
1 $:.unshift File.dirname(__FILE__) + "/../lib"
2 $:.unshift File.dirname(__FILE__) + "/../builtin/rails_info"
3 $:.unshift File.dirname(__FILE__) + "/../../activesupport/lib"
4
5 require 'test/unit'
6 require 'active_support'
7
8 unless defined?(Rails) && defined?(Rails::Info)
9   module Rails
10     class Info; end
11   end
12 end
13
14 class InfoTest < Test::Unit::TestCase
15   def setup
16     Rails.send :remove_const, :Info
17     silence_warnings { load 'rails/info.rb' }
18   end
19
20   def test_edge_rails_revision_not_set_when_svn_info_is_empty
21     Rails::Info.property 'Test that this will not be defined' do
22       Rails::Info.edge_rails_revision ''
23     end
24     assert !property_defined?('Test that this will not be defined')
25   end
26  
27   def test_edge_rails_revision_extracted_from_svn_info
28     Rails::Info.property 'Test Edge Rails revision' do
29       Rails::Info.edge_rails_revision <<-EOS
30 Path: .
31 URL: http://www.rubyonrails.com/svn/rails/trunk
32 Repository UUID: 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
33 Revision: 2881
34 Node Kind: directory
35 Schedule: normal
36 Last Changed Author: sam
37 Last Changed Rev: 2881
38 Last Changed Date: 2005-11-04 21:04:41 -0600 (Fri, 04 Nov 2005)
39 Properties Last Updated: 2005-10-28 19:30:00 -0500 (Fri, 28 Oct 2005)
40
41 EOS
42     end
43  
44     assert_property 'Test Edge Rails revision', '2881'
45   end
46  
47   def test_property_with_block_swallows_exceptions_and_ignores_property
48     assert_nothing_raised do
49       Rails::Info.module_eval do
50         property('Bogus') {raise}
51       end
52     end
53     assert !property_defined?('Bogus')
54   end
55  
56   def test_property_with_string
57     Rails::Info.module_eval do
58       property 'Hello', 'World'
59     end
60     assert_property 'Hello', 'World'
61   end
62  
63   def test_property_with_block
64     Rails::Info.module_eval do
65       property('Goodbye') {'World'}
66     end
67     assert_property 'Goodbye', 'World'
68   end
69  
70   def test_component_version
71     assert_property 'Active Support version', ActiveSupport::VERSION::STRING
72   end
73  
74   def test_components_exist
75     Rails::Info.components.each do |component|
76       dir = File.dirname(__FILE__) + "/../../" + component.gsub('_', '')
77       assert File.directory?(dir), "#{component.classify} does not exist"
78     end
79   end
80
81 protected
82   def svn_info=(info)
83     Rails::Info.module_eval do
84       class << self
85         def svn_info
86           info
87         end
88       end
89     end
90   end
91  
92   def properties
93     Rails::Info.properties
94   end
95
96   def property_defined?(property_name)
97     properties.names.include? property_name
98   end
99  
100   def assert_property(property_name, value)
101     raise "Property #{property_name.inspect} not defined" unless
102       property_defined? property_name
103     assert_equal value, properties.value_for(property_name)
104   end
105 end
Note: See TracBrowser for help on using the browser.