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:

 

define('PmWiki',1);

 

 

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 pmwiki.org (save in the changelog @ PmWiki:ChangeLog#v22022):

 

 

From: Patrick R. Michaud <pmichaud <at> pobox.com>
Subject: Re: Using pmwiki's functions without building the wiki
Newsgroups: gmane.comp.web.wiki.pmwiki.user
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;
    include('pmwiki.php');

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?

Pm

 

 

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

PHP.UnitTesting
PHP.Lint
PHP.Debugging

 

 

Category Tags

php development testing