summaryrefslogtreecommitdiff
path: root/jni/ruby/test/rdoc/test_rdoc_generator_ri.rb
diff options
context:
space:
mode:
Diffstat (limited to 'jni/ruby/test/rdoc/test_rdoc_generator_ri.rb')
-rw-r--r--jni/ruby/test/rdoc/test_rdoc_generator_ri.rb78
1 files changed, 78 insertions, 0 deletions
diff --git a/jni/ruby/test/rdoc/test_rdoc_generator_ri.rb b/jni/ruby/test/rdoc/test_rdoc_generator_ri.rb
new file mode 100644
index 0000000..f8ac973
--- /dev/null
+++ b/jni/ruby/test/rdoc/test_rdoc_generator_ri.rb
@@ -0,0 +1,78 @@
+require 'rdoc/test_case'
+
+class TestRDocGeneratorRI < RDoc::TestCase
+
+ def setup
+ super
+
+ @options = RDoc::Options.new
+ if Object.const_defined? :Encoding then
+ @options.encoding = Encoding::UTF_8
+ @store.encoding = Encoding::UTF_8
+ end
+
+ @tmpdir = File.join Dir.tmpdir, "test_rdoc_generator_ri_#{$$}"
+ FileUtils.mkdir_p @tmpdir
+
+ @g = RDoc::Generator::RI.new @store, @options
+
+ @top_level = @store.add_file 'file.rb'
+ @klass = @top_level.add_class RDoc::NormalClass, 'Object'
+
+ @meth = RDoc::AnyMethod.new nil, 'method'
+ @meth.record_location @top_level
+
+ @meth_bang = RDoc::AnyMethod.new nil, 'method!'
+ @meth_bang.record_location @top_level
+
+ @attr = RDoc::Attr.new nil, 'attr', 'RW', ''
+ @attr.record_location @top_level
+
+ @klass.add_method @meth
+ @klass.add_method @meth_bang
+ @klass.add_attribute @attr
+
+ Dir.chdir @tmpdir
+ end
+
+ def teardown
+ super
+
+ Dir.chdir @pwd
+ FileUtils.rm_rf @tmpdir
+ end
+
+ def test_generate
+ @g.generate
+
+ assert_file File.join(@tmpdir, 'cache.ri')
+
+ assert_file File.join(@tmpdir, 'Object', 'cdesc-Object.ri')
+
+ assert_file File.join(@tmpdir, 'Object', 'attr-i.ri')
+ assert_file File.join(@tmpdir, 'Object', 'method-i.ri')
+ assert_file File.join(@tmpdir, 'Object', 'method%21-i.ri')
+
+ store = RDoc::RI::Store.new @tmpdir
+ store.load_cache
+
+ encoding = Object.const_defined?(:Encoding) ? Encoding::UTF_8 : nil
+
+ assert_equal encoding, store.encoding
+ end
+
+ def test_generate_dry_run
+ @store.dry_run = true
+ @g = RDoc::Generator::RI.new @store, @options
+
+ top_level = @store.add_file 'file.rb'
+ top_level.add_class @klass.class, @klass.name
+
+ @g.generate
+
+ refute_file File.join(@tmpdir, 'cache.ri')
+ refute_file File.join(@tmpdir, 'Object')
+ end
+
+end
+