开发者

Is there any way to generate a set of JWebUnit tests from an apache rewrite config?

Seems unlikely, but is there any way to generate a set of unit tests for the following rewrite rule:

RewriteRule   ^/(user|group|country)/([a-z]+)/(photos|videos)$       http:/whatever?type=$1&entity=$2&resource=$3

From this I'd like to generate a set of urls of the form:

  • /user/foo/photos
  • /user/bar/photos
  • /group/baz/videos
  • /country/bar/photos
  • etc...

The reason I don't want to just do this once by hand is that I'd like the bounded alternat开发者_开发百科ion groups (e.g. (user|group|country)) to be able to grow and maintain coverage without having the update the tests by hand.

Is there a rewrite rule or regex parser that might be able to do this, or am I doing it by hand?


If you don't mind hacking a few lines of Perl then there's a package, Regexp::Genex that you can use to generate something close to what you require e.g.

# perl -MRegexp::Genex=:all -le 'print for strings(qr/\/(user|group|country)\/([a-z]+)\//)'
/user/dxb/
/user/dx/
/user/d/
/group/xd/
/group/x/
#  perl -MRegexp::Genex=:all -le 'my $re=qr/\/(user|group|country)\/([a-z]+)\/(phone|videos)/;$Regexp::Genex::DEFAULT_LEN = length $re;print for strings($re)'
/user/mgcgmccdmgdmmzccgmczgmzzdcmmd/phone
/user/mgcgmccdmgdmmzccgmczgmzzdcmm/phone
/user/mgcgmccdmgdmmzccgmczgmzzdcm/phone
/user/mgcgmccdmgdmmzccgmczgmzzdc/phone

...

/group/gg/videos
/group/g/phone
/group/g/videos
/country/jvmmm/phone
/country/jvmmm/videos
/country/jvmm/phone
/country/jvmm/videos
/country/jvm/phone
/country/jvm/videos
/country/jv/phone
/country/jv/videos
/country/j/phone
/country/j/videos
#

Note:

1) You'll need to write a wrapper to parse the source file, tokenise (extract) the source patterns, escape certain characters in the rule e.g. "/", and possibly split your rules into more manageable parts, before expanding, via Genex, and then outputting the results, in the desired format.

2) To install the module type: cpan Regexp::Genex

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜