@@ -199,6 +199,10 @@ def verify_invariant_crossrefs(xref)
199199
200200 # A link always should be generated for a file name.
201201 verify_file_crossref xref , @source_file_name , @source_file_name
202+
203+ # References should be generated correctly for a class scoped within
204+ # a class of the same name.
205+ verify_class_crossref xref , "Ref_Class4::Ref_Class4" , "Ref_Class4::Ref_Class4"
202206 end
203207
204208 def test_handle_special_CROSSREF_no_underscore
@@ -224,6 +228,7 @@ def test_handle_special_CROSSREF_no_underscore
224228 verify_class_crossref xref , "Ref_Class3::Helper1" , "Ref_Class3::Helper1"
225229 verify_class_crossref xref , "Ref_Class3::Helper2" , "Ref_Class3::Helper2"
226230 verify_no_crossref xref , "Helper1"
231+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4"
227232
228233 klass = class_hash [ "Ref_Class2" ]
229234 xref = RDoc ::Markup ::ToHtmlCrossref . new 'from_path' , klass , true
@@ -232,6 +237,7 @@ def test_handle_special_CROSSREF_no_underscore
232237 verify_method_crossref xref , "Ref_Class3#method" , "Ref_Class2::Ref_Class3" , "M000001"
233238 verify_no_crossref xref , "#method"
234239 verify_class_crossref xref , "Ref_Class3::Helper1" , "Ref_Class2::Ref_Class3::Helper1"
240+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4"
235241
236242 # This one possibly is an rdoc bug...
237243 # Ref_Class2 has a nested Ref_Class3, but
@@ -251,6 +257,7 @@ def test_handle_special_CROSSREF_no_underscore
251257 verify_class_crossref xref , "Ref_Class3::Helper1" , "Ref_Class2::Ref_Class3::Helper1"
252258 verify_no_crossref xref , "Ref_Class3::Helper2"
253259 verify_class_crossref xref , "Helper1" , "Ref_Class2::Ref_Class3::Helper1"
260+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4"
254261
255262 klass = class_hash [ "Ref_Class3" ]
256263 xref = RDoc ::Markup ::ToHtmlCrossref . new 'from_path' , klass , true
@@ -261,5 +268,20 @@ def test_handle_special_CROSSREF_no_underscore
261268 verify_class_crossref xref , "Ref_Class3::Helper1" , "Ref_Class3::Helper1"
262269 verify_class_crossref xref , "Ref_Class3::Helper2" , "Ref_Class3::Helper2"
263270 verify_class_crossref xref , "Helper1" , "Ref_Class3::Helper1"
271+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4"
272+
273+ klass = class_hash [ "Ref_Class4" ]
274+ xref = RDoc ::Markup ::ToHtmlCrossref . new 'from_path' , klass , true
275+ verify_invariant_crossrefs xref
276+ # A Ref_Class4 reference inside a Ref_Class4 class containing a
277+ # Ref_Class4 class should resolve to the contained class.
278+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4::Ref_Class4"
279+
280+ klass = class_hash [ "Ref_Class4::Ref_Class4" ]
281+ xref = RDoc ::Markup ::ToHtmlCrossref . new 'from_path' , klass , true
282+ verify_invariant_crossrefs xref
283+ # A Ref_Class4 reference inside a Ref_Class4 class contained within
284+ # a Ref_Class4 class should resolve to the inner Ref_Class4 class.
285+ verify_class_crossref xref , "Ref_Class4" , "Ref_Class4::Ref_Class4"
264286 end
265287end
0 commit comments