1 2use Test::More tests => 247; 3BEGIN { use_ok('Config::ApacheFormat'); } 4 5# exhaustive block check for all VirtualHosts 6my %blocks = map { $_ => 0 } 7 qw( mvadmin.moveagain.com preview.thepirtgroup.com caladmin.about.com commentadmin.about.com 8 comment.about.com pirtgroup.com admin.flyfishing.about.com prmpix.about.com 9 shuzai.newyorkmetro.thepirtgroup.com shuzai.newyorkmetro.about.com classifieds.about.com preview.gravitygames.com 10 preview.canoekayak.com classifieds.homeandigloo.about.com ca.homeandigloo.about.com classifieds.history.about.com 11 ca.history.about.com ca.sewing.about.com preview.slamonline.com preview.bflex.thepirtgroup.com 12 preview.truckinweb.com preview.automobilemag.com preview.newyorkmetro.com preview.bbric2.thepirtgroup.com 13 preview.caraudiomag.com preview.qabricolage.ops.about.com postad.equisearch.about.com ca.equisearch.com 14 ca-biz.equisearch.com preview.equisearch.com preview.enthusiast.thepirtgroup.com ca.3dgraphics.about.com 15 ca.4wheeldrive.about.com ca.712educators.about.com ca.80music.about.com ca.actionadventure.about.com 16 ca.actionfigures.about.com ca.add.about.com ca.adoption.about.com ca.adulted.about.com 17 ca.adventuretravel.about.com ca.advertising.about.com ca.aids.about.com ca.airtravel.about.com 18 ca.albany.about.com ca.alcoholism.about.com ca.allergies.about.com ca.allmychildren.about.com 19 ca.altmedicine.about.com ca.altmusic.about.com ca.altreligion.about.com ca.animals.about.com 20 ca.animatedtv.about.com ca.animation.about.com ca.anime.about.com ca.antiques.about.com 21 ca.antivirus.about.com ca.apartments.about.com ca.archaeology.about.com ca.architecture.about.com 22 ca.arthistory.about.com ca.arthritis.about.com ca.artsandcrafts.about.com ca.arttech.about.com 23 ca.asthma.about.com ca.astrology.about.com ca.atheism.about.com ca.atlanta.about.com 24 ca.autism.about.com ca.autobuy.about.com ca.autoracing.about.com ca.autorepair.about.com 25 ca.aviation.about.com ca.babyparenting.about.com ca.backandneck.about.com ca.baking.about.com 26 ca.baltimore.about.com ca.bandb.about.com ca.baseball.about.com ca.bbq.about.com 27 ca.beadwork.about.com ca.beauty.about.com ca.beginnersinvest.about.com ca.bicycling.about.com 28 ca.biology.about.com ca.biotech.about.com ca.bipolar.about.com ca.birding.about.com 29 ca.blues.about.com ca.boardgames.about.com ca.bodybuilding.about.com ca.boston.about.com 30 ca.boxing.about.com ca.breastcancer.about.com ca.brooklyn.about.com ca.buddhism.about.com 31 ca.budgettravel.about.com ca.businessmajors.about.com ca.businesssoft.about.com ca.businesstravel.about.com 32 ca.busycooks.about.com ca.motorcycles.about.com preview.motortrend.com preview.trucktrend.com 33 preview.surfermag.com preview.anaheim.com preview.importtuner.com postad.sailmag.about.com 34 ca.sailmag.com ca.exercise.about.com ca.weightloss.about.com ca.austin.about.com 35 ca.vintagecars.about.com ca.ecommerce.about.com ca.email.about.com preview.sportrider.com 36 postad.primediaautomotive.about.com ca.primediaautomotive.com ); 37 38my $config = Config::ApacheFormat->new(hash_directives => ['Allow']); 39 40isa_ok($config->read("t/large.conf"), 'Config::ApacheFormat'); 41 42is($config->get("User"), 'nobody'); 43is($config->get("Group"), 'nobody'); 44 45my $bl = $config->block(Directory => '/mnt/www/vdir/mp-bin'); 46is($bl->get('AllowOverride'), 'None'); 47is(($bl->get('Options'))[0], 'ExecCGI'); 48is(($bl->get('options'))[1], 'Includes'); 49is($bl->get('ORDER'), 'allow,deny'); 50is($bl->get(Allow => 'from'), 'all'); 51is($bl->get('SetHandler'), 'perl-script'); 52is($bl->get('PerlHandler'), 'Apache::Registry'); 53 54# check for all VirtualHost blocks, using ServerName 55for ($config->block(VirtualHost => qw/10.12.13.125 10.12.12.125/)) { 56 my $s = $_->get('servername'); 57 my $ok = 0; 58 if (exists $blocks{$s}) { 59 $blocks{$s}++; 60 $ok = 1; 61 } 62 ok($ok); 63} 64 65# loop thru and make sure we had them all 66while (my($k,$v) = each %blocks) { 67 is($blocks{$k}, 1); # should be 1 and not 0/2/3 68} 69 70