General Notes

I’m looking into unit-testing with SimpleUnit


Issue: Chunks of PmWiki core-code will need to be mocked, or a working install of pmwiki will be required. (Can such a thing be set up via a script?)


At the very least, ‘pmwiki’ will need to be defined, as that’s usually the first check in code:


<?php if (!defined('PmWiki')) exit();



however, that’s pretty simple. pmwiki.php contains:





Not sure about other core functions or code. Including pmwiki.php is, I believe, a non-starter, as it will output an entire web-page by default, and no way of turning that off AFAIK.


UPDATE: That may not be the case, as I found this 2007 message, so-far undocumented on (save in the changelog @ PmWiki:ChangeLog#v22022):



From: Patrick R. Michaud <pmichaud <at>>
Subject: Re: Using pmwiki's functions without building the wiki
Date: 2007-01-15 18:52:11 GMT (6 years, 47 weeks, 4 days, 21 hours and 20 minutes ago)

On Mon, Jan 15, 2007 at 05:50:57PM +0100, Wouter Groeneveld wrote:
>    I would like to use IncludeText() so I can access the text in my wiki
>    pages, but I do _NOT_ want to generate the whole skin and page.
>    So when I include("pmwiki.php") > this automatically generates my wiki. I
>    don't want that, I only want to display the includeText() output.
>    Is there any possibility to tell pmwiki not do do anything? I only want to
>    be able to use the function includetext()

For 2.2.0-beta22 I'm adding an $EnableActions configuration variable;
if set, then PmWiki will do all of its initialization and other work,
but won't call any $HandleActions routines.

Then you can do the following:

    $EnableActions = 0;

This will initialize PmWiki (along with any configuration/customizations
that are being made, e.g. from local/config.php), but won't actually
perform any actions.  The caller can then call the desired action
or other functions as desired.

Would that work for your needs?




UPDATE 2013.12.16: I can confirm that pmwiki.php can be included and used for testing; I do not yet know what “best practices” may be... hope to have minimal updates in here this week.


See Also




Category Tags

php development testing