mbhsoft/codeception-sitemap-module

There is no license information available for the latest version (3.0.0) of this package.

Parse and validate sitemap.xml files

3.0.0 2022-11-17 22:29 UTC

This package is auto-updated.

Last update: 2024-10-18 14:38:28 UTC


README

This package provides parsing and validation of sitemap.xml files.

Fork from portrino/codeception-sitemap-module

Installation

You need to add the repository into your composer.json file

    composer require --dev mbhsoft/codeception-sitemap-module

Usage

You can use this module as any other Codeception module, by adding 'Sitemap' to the enabled modules in your Codeception suite configurations.

Enable module and setup the configuration variables

The url could be set in config file directly or via an environment variable: %BASE_URL%

modules:
    enabled:
        - Sitemap:
            depends: PhpBrowser
            url: ADD_YOUR_BASE_URL_HERE

You could also configure the guzzle instance of the sitemap parser package. For example to disable SSL certification checks:

modules:
    enabled:
      - Sitemap:
          sitemapParser:
            guzzle:
              verify: false

Update Codeception build

  codecept build

Implement the cept / cest

    $I->wantToTest('If sitemap is valid.');
    
    $I->amOnPage('sitemap_index.xml');
    
    // validation against https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
    // sitemap will be retrieved from: http://<www.domain.tld>/sitemap.xml, where http://<www.domain.tld>/ is configured in module config
    $I->seeSiteMapIsValid('sitemap.xml');
    
    // validation against https://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd
    // siteindex will be retrieved from: http://<www.domain.tld>/sitemap_index.xml, where http://<www.domain.tld>/ is configured in module config
    $I->seeSiteIndexIsValid('sitemap_index.xml');

    // validate url occurence (also recursively through siteindex files!)
    
    // complete url
    $I->seeSiteMapContainsUrl('sitemap_index.xml', 'https://www.domain.tld/foo/bar/');
    
    // without base_url (checks if one of the sitemap urls contains the path) 
    $I->seeSiteMapContainsUrlPath('sitemap.xml', '/foo/bar');
    
    
    // via response object
    $I->seeSiteMapResponseContainsUrlPath('/bar/');
    $I->seeSiteMapResponseContainsUrlPath('/foo/');
  

Authors

  • AndrĂ© Wuttig - Initial work, Unit Tests, Documentation - aWuttig
  • Marc Bastian Heinrichs - Bugfixes, Acceptance tests, Migration to GitHub actions, Upgrade for Codeception v4 Mabahe

See also the list of contributors who participated in this project.