--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More;
+
+plan skip_all => 'TODO';
+
+eval "use Test::Pod::Coverage 1.04";
+plan skip_all => "Test::Pod::Coverage 1.04 required for testing POD coverage" if $@;
+
+# This is a stripped down version of all_pod_coverage_ok which lets us
+# vary the trustme parameter per module.
+my @modules = all_modules();
+plan tests => scalar @modules;
+
+my %trustme = (
+ 'Mouse::Meta::Module' => [
+ ],
+
+ 'Mouse::Meta::Class' => [
+ qw(
+ get_method_body
+ superclasses
+ clone_instance
+ )
+ ],
+ 'Mouse::Meta::Attribute' => [
+ qw(
+ interpolate_class
+ throw_error
+ create
+ get_parent_args
+ verify_type_constraint
+ canonicalize_args
+ coerce_constraint
+ )
+ ],
+ 'Mouse::Meta::Method' => [],
+ 'Mouse::Meta::Method::Accessor' => [],
+ 'Mouse::Meta::Method::Constructor' => [],
+ 'Mouse::Meta::Method::Destructor' => [],
+ 'Mouse::Meta::Role' => [],
+ 'Mouse::Meta::Role::Composite' =>
+ [ 'get_method', 'get_method_list', 'has_method', 'add_method' ],
+ 'Mouse::Role' => [
+ qw( after
+ around
+ augment
+ before
+ extends
+ has
+ inner
+ override
+ super
+ with )
+ ],
+ 'Mouse::Meta::TypeConstraint' => [
+ qw(
+ compile_type_constraint
+ parameterize
+ )
+ ],
+ 'Mouse::Util' => [
+ qw(
+ generate_isa_predicate_for
+ does dump meta
+ )
+ ],
+ 'Mouse::Util::TypeConstraints' => [
+ qw(typecast_constraints)
+ ],
+
+ 'Mouse::Exporter' => [
+ qw(
+ do_import do_unimport
+ )
+ ],
+ 'Mouse::Spec' => ['.+'],
+ 'Squirrel' => ['.+'],
+ 'Squirrel::Role' => ['.+'],
+ 'Mouse::TypeRegistry' => ['.+'],
+);
+
+for my $module ( sort @modules ) {
+ my $trustme = [];
+ if ( $trustme{$module} ) {
+ my $methods = join '|', @{ $trustme{$module} };
+ $trustme = [qr/^(?:$methods)$/];
+ }
+
+ pod_coverage_ok(
+ $module, { trustme => $trustme },
+ "Pod coverage for $module"
+ );
+}