Add a bunch more words to the spelling whitelist
[gitmo/Moose.git] / xt / release / pod-coverage.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7
8 use Test::Requires {
9     'Test::Pod::Coverage' => '1.04',    # skip all if not installed
10 };
11
12 # This is a stripped down version of all_pod_coverage_ok which lets us
13 # vary the trustme parameter per module.
14 my @modules = grep { !/Accessor::Native.*$/ } all_modules();
15 plan tests => scalar @modules;
16
17 my %trustme = (
18     'Class::MOP' => [
19         'DEBUG_NO_META',
20         'HAVE_ISAREV',
21         'subname',
22         'in_global_destruction',
23     ],
24     'Class::MOP::Attribute' => ['process_accessors'],
25     'Class::MOP::Class'     => [
26         # deprecated
27         'alias_method',
28         'compute_all_applicable_attributes',
29         'compute_all_applicable_methods',
30
31         # unfinished feature
32         'add_dependent_meta_instance',
33         'add_meta_instance_dependencies',
34         'invalidate_meta_instance',
35         'invalidate_meta_instances',
36         'remove_dependent_meta_instance',
37         'remove_meta_instance_dependencies',
38         'update_meta_instance_dependencies',
39
40         # effectively internal
41         'check_metaclass_compatibility',
42         'clone_instance',
43         'construct_class_instance',
44         'construct_instance',
45         'create_meta_instance',
46         'reset_package_cache_flag',
47         'update_package_cache_flag',
48         'reinitialize',
49
50         # doc'd with rebless_instance
51         'rebless_instance_away',
52
53         # deprecated
54         'get_attribute_map',
55     ],
56     'Class::MOP::Class::Immutable::Trait'             => ['.+'],
57     'Class::MOP::Class::Immutable::Class::MOP::Class' => ['.+'],
58     'Class::MOP::Deprecated'                          => ['.+'],
59     'Class::MOP::Instance'                            => [
60         qw( BUILDARGS
61             bless_instance_structure
62             is_dependent_on_superclasses ),
63     ],
64     'Class::MOP::Instance' => [
65         qw( BUILDARGS
66             bless_instance_structure
67             is_dependent_on_superclasses ),
68     ],
69     'Class::MOP::Method::Accessor' => [
70         qw( generate_accessor_method
71             generate_accessor_method_inline
72             generate_clearer_method
73             generate_clearer_method_inline
74             generate_predicate_method
75             generate_predicate_method_inline
76             generate_reader_method
77             generate_reader_method_inline
78             generate_writer_method
79             generate_writer_method_inline
80             initialize_body
81             )
82     ],
83     'Class::MOP::Method::Constructor' => [
84         qw( attributes
85             generate_constructor_method
86             generate_constructor_method_inline
87             initialize_body
88             meta_instance
89             options
90             )
91     ],
92     'Class::MOP::Method::Generated' => [
93         qw( new
94             definition_context
95             is_inline
96             initialize_body
97             )
98     ],
99     'Class::MOP::MiniTrait'            => ['.+'],
100     'Class::MOP::Mixin::AttributeCore' => ['.+'],
101     'Class::MOP::Mixin::HasAttributes' => ['.+'],
102     'Class::MOP::Mixin::HasMethods'    => ['.+'],
103     'Class::MOP::Module'               => ['create'],
104     'Class::MOP::Package'    => [ 'get_method_map', 'wrap_method_body' ],
105     'Moose::Error::Confess'  => ['new'],
106     'Moose::Meta::Attribute' => [
107         qw( interpolate_class
108             throw_error
109             attach_to_class
110             )
111     ],
112     'Moose::Meta::Attribute::Native::MethodProvider::Array'   => ['.+'],
113     'Moose::Meta::Attribute::Native::MethodProvider::Bool'    => ['.+'],
114     'Moose::Meta::Attribute::Native::MethodProvider::Code'    => ['.+'],
115     'Moose::Meta::Attribute::Native::MethodProvider::Counter' => ['.+'],
116     'Moose::Meta::Attribute::Native::MethodProvider::Hash'    => ['.+'],
117     'Moose::Meta::Attribute::Native::MethodProvider::String'  => ['.+'],
118     'Moose::Meta::Class'                                      => [
119         qw( check_metaclass_compatibility
120             construct_instance
121             create_error
122             raise_error
123             reinitialize
124             superclasses
125             )
126     ],
127     'Moose::Meta::Class::Immutable::Trait' => ['.+'],
128     'Moose::Meta::Method'                  => ['throw_error'],
129     'Moose::Meta::Method::Accessor'        => [
130         qw( generate_accessor_method
131             generate_accessor_method_inline
132             generate_clearer_method
133             generate_predicate_method
134             generate_reader_method
135             generate_reader_method_inline
136             generate_writer_method
137             generate_writer_method_inline
138             )
139     ],
140     'Moose::Meta::Method::Constructor' => [
141         qw( attributes
142             initialize_body
143             meta_instance
144             new
145             options
146             )
147     ],
148     'Moose::Meta::Method::Destructor' => [ 'initialize_body', 'options' ],
149     'Moose::Meta::Method::Meta'       => ['wrap'],
150     'Moose::Meta::Role'               => [
151         qw( alias_method
152             get_method_modifier_list
153             reinitialize
154             reset_package_cache_flag
155             update_package_cache_flag
156             wrap_method_body
157             )
158     ],
159     'Moose::Meta::Mixin::AttributeCore' => ['.+'],
160     'Moose::Meta::Role::Composite' =>
161         [ 'get_method', 'get_method_list', 'has_method', 'add_method' ],
162     'Moose::Role' => [
163         qw( after
164             around
165             augment
166             before
167             extends
168             has
169             inner
170             override
171             super
172             with )
173     ],
174     'Moose::Meta::TypeCoercion'        => ['compile_type_coercion'],
175     'Moose::Meta::TypeCoercion::Union' => ['compile_type_coercion'],
176     'Moose::Meta::TypeConstraint'      => ['compile_type_constraint'],
177     'Moose::Meta::TypeConstraint::Class' =>
178         [qw( equals is_a_type_of is_a_subtype_of )],
179     'Moose::Meta::TypeConstraint::Enum' => [qw( constraint equals )],
180     'Moose::Meta::TypeConstraint::DuckType' =>
181         [qw( constraint equals get_message )],
182     'Moose::Meta::TypeConstraint::Parameterizable' => ['.+'],
183     'Moose::Meta::TypeConstraint::Parameterized'   => ['.+'],
184     'Moose::Meta::TypeConstraint::Role' => [qw( equals is_a_type_of )],
185     'Moose::Meta::TypeConstraint::Union' =>
186         [qw( compile_type_constraint coercion has_coercion)],
187     'Moose::Util'                  => ['add_method_modifier'],
188     'Moose::Util::MetaRole'        => ['apply_metaclass_roles'],
189     'Moose::Util::TypeConstraints' => ['find_or_create_type_constraint'],
190 );
191
192 for my $module ( sort @modules ) {
193
194     my $trustme = [];
195     if ( $trustme{$module} ) {
196         my $methods = join '|', @{ $trustme{$module} };
197         $trustme = [qr/^(?:$methods)$/];
198     }
199
200     pod_coverage_ok(
201         $module, { trustme => $trustme },
202         "Pod coverage for $module"
203     );
204 }