@@ -478,5 +478,116 @@ def test_methods_matching_inherit
478478 assert_equal [ @parent_m ] , methods
479479 end
480480
481+ def test_remove_invisible_private
482+ util_visibilities
483+
484+ @vis . remove_invisible :private
485+
486+ assert_equal [ @pub , @prot , @priv ] , @vis . method_list
487+ assert_equal [ @apub , @aprot , @apriv ] , @vis . attributes
488+ end
489+
490+ def test_remove_invisible_protected
491+ util_visibilities
492+
493+ @vis . remove_invisible :protected
494+
495+ assert_equal [ @pub , @prot ] , @vis . method_list
496+ assert_equal [ @apub , @aprot ] , @vis . attributes
497+ end
498+
499+ def test_remove_invisible_public
500+ util_visibilities
501+
502+ @vis . remove_invisible :public
503+
504+ assert_equal [ @pub ] , @vis . method_list
505+ assert_equal [ @apub ] , @vis . attributes
506+ end
507+
508+ def test_remove_invisible_public_force
509+ util_visibilities
510+
511+ @priv . force_documentation = true
512+ @prot . force_documentation = true
513+ @apriv . force_documentation = true
514+ @aprot . force_documentation = true
515+
516+ @vis . remove_invisible :public
517+
518+ assert_equal [ @pub , @prot , @priv ] , @vis . method_list
519+ assert_equal [ @apub , @aprot , @apriv ] , @vis . attributes
520+ end
521+
522+ def test_remove_invisible_in_protected
523+ util_visibilities
524+
525+ methods = [ @pub , @prot , @priv ]
526+
527+ @c1 . remove_invisible_in methods , :protected
528+
529+ assert_equal [ @pub , @prot ] , methods
530+ end
531+
532+ def test_remove_invisible_in_protected_force
533+ util_visibilities
534+
535+ @priv . force_documentation = true
536+
537+ methods = [ @pub , @prot , @priv ]
538+
539+ @c1 . remove_invisible_in methods , :protected
540+
541+ assert_equal [ @pub , @prot , @priv ] , methods
542+ end
543+
544+ def test_remove_invisible_in_public
545+ util_visibilities
546+
547+ methods = [ @pub , @prot , @priv ]
548+
549+ @c1 . remove_invisible_in methods , :public
550+
551+ assert_equal [ @pub ] , methods
552+ end
553+
554+ def test_remove_invisible_in_public_force
555+ util_visibilities
556+
557+ @prot . force_documentation = true
558+ @priv . force_documentation = true
559+
560+ methods = [ @pub , @prot , @priv ]
561+
562+ @c1 . remove_invisible_in methods , :public
563+
564+ assert_equal [ @pub , @prot , @priv ] , methods
565+ end
566+
567+ def util_visibilities
568+ @pub = RDoc ::AnyMethod . new nil , 'pub'
569+ @prot = RDoc ::AnyMethod . new nil , 'prot'
570+ @priv = RDoc ::AnyMethod . new nil , 'priv'
571+
572+ @apub = RDoc ::Attr . new nil , 'pub' , 'RW' , nil
573+ @aprot = RDoc ::Attr . new nil , 'prot' , 'RW' , nil
574+ @apriv = RDoc ::Attr . new nil , 'priv' , 'RW' , nil
575+
576+ @vis = RDoc ::NormalClass . new 'Vis'
577+ @vis . add_method @pub
578+ @vis . add_method @prot
579+ @vis . add_method @priv
580+
581+ @vis . add_attribute @apub
582+ @vis . add_attribute @aprot
583+ @vis . add_attribute @apriv
584+
585+ @prot . visibility = :protected
586+ @priv . visibility = :private
587+
588+ @aprot . visibility = :protected
589+ @apriv . visibility = :private
590+ end
591+
481592end
482593
0 commit comments