summaryrefslogtreecommitdiff
path: root/scripts/dev/generate-phpt.phar
blob: d9e6ce4302d5b8d954d6ad74741eb28605b1277f (plain)
ofshex dumpascii
0000 3c 3f 70 68 70 0a 50 68 61 72 3a 3a 6d 61 70 50 68 61 72 28 27 67 65 6e 65 72 61 74 65 2d 70 68 <?php.Phar::mapPhar('generate-ph
0020 70 74 2e 70 68 61 72 27 29 3b 0a 72 65 71 75 69 72 65 20 27 70 68 61 72 3a 2f 2f 67 65 6e 65 72 pt.phar');.require.'phar://gener
0040 61 74 65 2d 70 68 70 74 2e 70 68 61 72 2f 67 65 6e 65 72 61 74 65 2d 70 68 70 74 2e 70 68 70 27 ate-phpt.phar/generate-phpt.php'
0060 3b 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 0a 0d 00 00 3a 00 00 ;.__HALT_COMPILER();.?>......:..
0080 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 11 00 00 00 67 65 6e 65 72 61 74 65 2d 70 68 70 74 ...................generate-phpt
00a0 2e 70 68 70 35 0b 00 00 a5 9e 02 4a 35 0b 00 00 c1 3b da f3 b6 01 00 00 00 00 00 00 0e 00 00 00 .php5......J5....;..............
00c0 67 74 46 75 6e 63 74 69 6f 6e 2e 70 68 70 9f 03 00 00 a5 9e 02 4a 9f 03 00 00 65 ec 47 68 b6 01 gtFunction.php.......J....e.Gh..
00e0 00 00 00 00 00 00 0a 00 00 00 67 74 54 65 78 74 2e 70 68 70 aa 01 00 00 a5 9e 02 4a aa 01 00 00 ..........gtText.php.......J....
0100 a1 d3 59 a4 b6 01 00 00 00 00 00 00 0e 00 00 00 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 ff 09 ..Y.............gtClassMap.php..
0120 00 00 a5 9e 02 4a ff 09 00 00 42 fc c1 b4 b6 01 00 00 00 00 00 00 17 00 00 00 74 65 78 74 73 2f .....J....B...............texts/
0140 75 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 2e 74 78 74 6c 00 00 00 a5 9e 02 4a 6c 00 00 00 e9 32 8b unknownMethod.txtl......Jl....2.
0160 5f b6 01 00 00 00 00 00 00 16 00 00 00 74 65 78 74 73 2f 75 6e 6b 6e 6f 77 6e 43 6c 61 73 73 2e _............texts/unknownClass.
0180 74 78 74 69 00 00 00 a5 9e 02 4a 69 00 00 00 6f ea 70 8c b6 01 00 00 00 00 00 00 1e 00 00 00 74 txti......Ji...o.p.............t
01a0 65 78 74 73 2f 74 65 73 74 54 79 70 65 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 74 32 00 00 exts/testTypeNotSpecified.txt2..
01c0 00 a5 9e 02 4a 32 00 00 00 ec 3f 94 1f b6 01 00 00 00 00 00 00 0e 00 00 00 74 65 78 74 73 2f 68 ....J2....?..............texts/h
01e0 65 6c 70 2e 74 78 74 3f 03 00 00 a5 9e 02 4a 3f 03 00 00 6f 04 8f 92 b6 01 00 00 00 00 00 00 1c elp.txt?......J?...o............
0200 00 00 00 74 65 78 74 73 2f 6d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 74 63 ...texts/methodNotSpecified.txtc
0220 00 00 00 a5 9e 02 4a 63 00 00 00 01 2a 80 6c b6 01 00 00 00 00 00 00 26 00 00 00 74 65 78 74 73 ......Jc....*.l........&...texts
0240 2f 66 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 /functionOrMethodNotSpecified.tx
0260 74 38 00 00 00 a5 9e 02 4a 38 00 00 00 14 a2 81 ab b6 01 00 00 00 00 00 00 19 00 00 00 74 65 78 t8......J8...................tex
0280 74 73 2f 75 6e 6b 6e 6f 77 6e 46 75 6e 63 74 69 6f 6e 2e 74 78 74 72 00 00 00 a5 9e 02 4a 72 00 ts/unknownFunction.txtr......Jr.
02a0 00 00 13 1c c8 99 b6 01 00 00 00 00 00 00 11 00 00 00 67 74 43 6f 64 65 53 6e 69 70 70 65 74 2e ..................gtCodeSnippet.
02c0 70 68 70 71 05 00 00 a5 9e 02 4a 71 05 00 00 d7 3e e3 31 b6 01 00 00 00 00 00 00 0e 00 00 00 67 phpq......Jq....>.1............g
02e0 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 37 04 00 00 a5 9e 02 4a 37 04 00 00 c1 8a 06 cb b6 01 00 tAutoload.php7......J7..........
0300 00 00 00 00 00 1e 00 00 00 73 65 74 75 70 2f 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 .........setup/gtCommandLineOpti
0320 6f 6e 73 2e 70 68 70 29 07 00 00 a5 9e 02 4a 29 07 00 00 f6 da 7b eb b6 01 00 00 00 00 00 00 29 ons.php)......J).....{.........)
0340 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 ...setup/preconditions/gtIsValid
0360 46 75 6e 63 74 69 6f 6e 2e 70 68 70 df 01 00 00 a5 9e 02 4a df 01 00 00 c8 ef fc 74 b6 01 00 00 Function.php.......J.......t....
0380 00 00 00 00 2d 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 ....-...setup/preconditions/gtIs
03a0 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 2e 70 68 70 70 01 00 00 a5 9e 02 4a 70 01 00 SpecifiedTestType.phpp......Jp..
03c0 00 3f a9 53 dc b6 01 00 00 00 00 00 00 2a 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 .?.S.........*...setup/precondit
03e0 69 6f 6e 73 2f 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 2e 70 68 70 90 01 00 00 a5 ions/gtIfClassHasMethod.php.....
0400 9e 02 4a 90 01 00 00 35 81 0a 09 b6 01 00 00 00 00 00 00 35 00 00 00 73 65 74 75 70 2f 70 72 65 ..J....5...........5...setup/pre
0420 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e conditions/gtIsSpecifiedFunction
0440 4f 72 4d 65 74 68 6f 64 2e 70 68 70 7f 01 00 00 a5 9e 02 4a 7f 01 00 00 0d 6d ea 03 b6 01 00 00 OrMethod.php.......J.....m......
0460 00 00 00 00 27 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 ....'...setup/preconditions/gtIs
0480 56 61 6c 69 64 4d 65 74 68 6f 64 2e 70 68 70 32 02 00 00 a5 9e 02 4a 32 02 00 00 b7 8a d0 1b b6 ValidMethod.php2......J2........
04a0 01 00 00 00 00 00 00 26 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 .......&...setup/preconditions/g
04c0 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e 70 68 70 ac 01 00 00 a5 9e 02 4a ac 01 00 00 db a7 71 tIsValidClass.php.......J......q
04e0 b7 b6 01 00 00 00 00 00 00 1c 00 00 00 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f .............setup/gtPreConditio
0500 6e 4c 69 73 74 2e 70 68 70 72 02 00 00 a5 9e 02 4a 72 02 00 00 1d a3 fb 49 b6 01 00 00 00 00 00 nList.phpr......Jr......I.......
0520 00 1c 00 00 00 73 65 74 75 70 2f 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2e 70 68 .....setup/gtOptionalSections.ph
0540 70 81 06 00 00 a5 9e 02 4a 81 06 00 00 91 61 3f d0 b6 01 00 00 00 00 00 00 2f 00 00 00 73 65 74 p.......J.....a?........./...set
0560 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 up/exceptions/gtMissingArgumentE
0580 78 63 65 70 74 69 6f 6e 2e 70 68 70 4f 00 00 00 a5 9e 02 4a 4f 00 00 00 c2 b4 9f 6b b6 01 00 00 xception.phpO......JO......k....
05a0 00 00 00 00 2e 00 00 00 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e 6f ........setup/exceptions/gtUnkno
05c0 77 6e 53 65 63 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 4a 00 00 00 a5 9e 02 4a 4a 00 wnSectionException.phpJ......JJ.
05e0 00 00 b0 06 85 00 b6 01 00 00 00 00 00 00 2d 00 00 00 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f ..............-...setup/exceptio
0600 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 4d ns/gtUnknownOptionException.phpM
0620 00 00 00 a5 9e 02 4a 4d 00 00 00 9b aa 79 cb b6 01 00 00 00 00 00 00 2e 00 00 00 73 65 74 75 70 ......JM.....y.............setup
0640 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 /exceptions/gtMissingOptionsExce
0660 70 74 69 6f 6e 2e 70 68 70 4c 00 00 00 a5 9e 02 4a 4c 00 00 00 39 ef 6f 1c b6 01 00 00 00 00 00 ption.phpL......JL...9.o........
0680 00 18 00 00 00 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 b4 00 00 .....setup/gtPreCondition.php...
06a0 00 a5 9e 02 4a b4 00 00 00 11 41 79 ab b6 01 00 00 00 00 00 00 14 00 00 00 67 74 54 65 73 74 43 ....J.....Ay.............gtTestC
06c0 61 73 65 57 72 69 74 65 72 2e 70 68 70 da 01 00 00 a5 9e 02 4a da 01 00 00 c3 8b 68 53 b6 01 00 aseWriter.php.......J......hS...
06e0 00 00 00 00 00 0c 00 00 00 67 74 4d 65 74 68 6f 64 2e 70 68 70 9b 0c 00 00 a5 9e 02 4a 9b 0c 00 .........gtMethod.php.......J...
0700 00 67 a5 b8 8b b6 01 00 00 00 00 00 00 1b 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 63 6f .g...............codeSnippets/co
0720 6d 6d 65 6e 74 45 6e 64 2e 74 78 74 06 00 00 00 a5 9e 02 4a 06 00 00 00 c5 c4 55 ae b6 01 00 00 mmentEnd.txt.......J......U.....
0740 00 00 00 00 1a 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 77 69 6e 2e 74 ........codeSnippets/skipifwin.t
0760 78 74 57 00 00 00 a5 9e 02 4a 57 00 00 00 3f 80 99 12 b6 01 00 00 00 00 00 00 1d 00 00 00 63 6f xtW......JW...?...............co
0780 64 65 53 6e 69 70 70 65 74 73 2f 63 6f 6d 6d 65 6e 74 53 74 61 72 74 2e 74 78 74 06 00 00 00 a5 deSnippets/commentStart.txt.....
07a0 9e 02 4a 06 00 00 00 1d 06 6e 40 b6 01 00 00 00 00 00 00 16 00 00 00 63 6f 64 65 53 6e 69 70 70 ..J......n@............codeSnipp
07c0 65 74 73 2f 66 6c 6f 61 74 2e 74 78 74 c6 00 00 00 a5 9e 02 4a c6 00 00 00 14 43 30 f8 b6 01 00 ets/float.txt.......J.....C0....
07e0 00 00 00 00 00 17 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 74 72 69 6e 67 2e 74 78 74 .........codeSnippets/string.txt
0800 b4 00 00 00 a5 9e 02 4a b4 00 00 00 06 31 cb e8 b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 65 .......J.....1..............code
0820 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 53 74 61 72 74 2e 74 78 74 26 00 00 00 a5 9e 02 4a 26 00 Snippets/loopStart.txt&......J&.
0840 00 00 b0 dc ca 95 b6 01 00 00 00 00 00 00 1d 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 ..................codeSnippets/s
0860 6b 69 70 69 66 6e 6f 74 77 69 6e 2e 74 78 74 58 00 00 00 a5 9e 02 4a 58 00 00 00 a6 35 59 6e b6 kipifnotwin.txtX......JX....5Yn.
0880 01 00 00 00 00 00 00 16 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 61 72 72 61 79 2e 74 78 ...........codeSnippets/array.tx
08a0 74 15 01 00 00 a5 9e 02 4a 15 01 00 00 85 47 a3 4a b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 t.......J.....G.J............cod
08c0 65 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 43 6c 6f 73 65 2e 74 78 74 01 00 00 00 a5 9e 02 4a 01 eSnippets/loopClose.txt.......J.
08e0 00 00 00 0c e2 b6 fc b6 01 00 00 00 00 00 00 18 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f ...................codeSnippets/
0900 62 6f 6f 6c 65 61 6e 2e 74 78 74 8f 00 00 00 a5 9e 02 4a 8f 00 00 00 7f c5 3f e6 b6 01 00 00 00 boolean.txt.......J......?......
0920 00 00 00 1d 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 6e 6f 74 36 34 62 .......codeSnippets/skipifnot64b
0940 2e 74 78 74 4a 00 00 00 a5 9e 02 4a 4a 00 00 00 16 d6 70 c5 b6 01 00 00 00 00 00 00 19 00 00 00 .txtJ......JJ.....p.............
0960 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69 70 69 66 36 34 62 74 78 74 4a 00 00 00 a5 9e 02 codeSnippets/skipif64btxtJ......
0980 4a 4a 00 00 00 7c b4 22 cb b6 01 00 00 00 00 00 00 24 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 JJ...|.".........$...codeSnippet
09a0 73 2f 65 6d 70 74 79 55 6e 73 65 74 55 6e 64 65 66 4e 75 6c 6c 2e 74 78 74 f6 00 00 00 a5 9e 02 s/emptyUnsetUndefNull.txt.......
09c0 4a f6 00 00 00 21 f7 8c 0e b6 01 00 00 00 00 00 00 17 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 J....!...............codeSnippet
09e0 73 2f 6f 62 6a 65 63 74 2e 74 78 74 59 02 00 00 a5 9e 02 4a 59 02 00 00 fb 05 82 7c b6 01 00 00 s/object.txtY......JY......|....
0a00 00 00 00 00 14 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 69 6e 74 2e 74 78 74 7a 00 00 00 ........codeSnippets/int.txtz...
0a20 a5 9e 02 4a 7a 00 00 00 9f 08 e8 42 b6 01 00 00 00 00 00 00 11 00 00 00 67 74 54 65 73 74 53 75 ...Jz......B............gtTestSu
0a40 62 6a 65 63 74 2e 70 68 70 11 11 00 00 a5 9e 02 4a 11 11 00 00 50 b3 02 65 b6 01 00 00 00 00 00 bject.php.......J....P..e.......
0a60 00 27 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e .'...testcase/gtVariationContain
0a80 65 72 4d 65 74 68 6f 64 2e 70 68 70 33 04 00 00 a5 9e 02 4a 33 04 00 00 ea 1c 1a 78 b6 01 00 00 erMethod.php3......J3......x....
0aa0 00 00 00 00 22 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 ...."...testcase/gtBasicTestCase
0ac0 4d 65 74 68 6f 64 2e 70 68 70 e1 04 00 00 a5 9e 02 4a e1 04 00 00 f6 4f 87 13 b6 01 00 00 00 00 Method.php.......J.....O........
0ae0 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 2e 70 ......testcase/gtErrorTestCase.p
0b00 68 70 c8 04 00 00 a5 9e 02 4a c8 04 00 00 c5 00 d8 f1 b6 01 00 00 00 00 00 00 17 00 00 00 74 65 hp.......J....................te
0b20 73 74 63 61 73 65 2f 67 74 54 65 73 74 43 61 73 65 2e 70 68 70 bc 12 00 00 a5 9e 02 4a bc 12 00 stcase/gtTestCase.php.......J...
0b40 00 b8 ca 22 40 b6 01 00 00 00 00 00 00 24 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 ..."@........$...testcase/gtBasi
0b60 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 48 05 00 00 a5 9e 02 4a 48 05 00 cTestCaseFunction.phpH......JH..
0b80 00 78 a4 25 a2 b6 01 00 00 00 00 00 00 24 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f .x.%.........$...testcase/gtErro
0ba0 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 a1 05 00 00 a5 9e 02 4a a1 05 00 rTestCaseFunction.php.......J...
0bc0 00 d8 31 a8 01 b6 01 00 00 00 00 00 00 28 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 ..1..........(...testcase/gtVari
0be0 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 b0 06 00 00 a5 9e 02 ationTestCaseFunction.php.......
0c00 4a b0 06 00 00 d1 35 5f b5 b6 01 00 00 00 00 00 00 29 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 J.....5_.........)...testcase/gt
0c20 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 2e 70 68 70 3b 04 VariationContainerFunction.php;.
0c40 00 00 a5 9e 02 4a 3b 04 00 00 de c3 cd 61 b6 01 00 00 00 00 00 00 22 00 00 00 74 65 73 74 63 61 .....J;......a........"...testca
0c60 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 cd 05 00 00 se/gtErrorTestCaseMethod.php....
0c80 a5 9e 02 4a cd 05 00 00 82 c8 f1 22 b6 01 00 00 00 00 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 ...J......."............testcase
0ca0 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 2e 70 68 70 75 03 00 00 a5 9e 02 4a 75 03 00 00 /gtBasicTestCase.phpu......Ju...
0cc0 8a 55 4b 25 b6 01 00 00 00 00 00 00 21 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 .UK%........!...testcase/gtVaria
0ce0 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 2e 70 68 70 87 04 00 00 a5 9e 02 4a 87 04 00 00 28 3d c1 tionContainer.php.......J....(=.
0d00 3b b6 01 00 00 00 00 00 00 20 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f ;............testcase/gtVariatio
0d20 6e 54 65 73 74 43 61 73 65 2e 70 68 70 ea 05 00 00 a5 9e 02 4a ea 05 00 00 fb cd c5 43 b6 01 00 nTestCase.php.......J.......C...
0d40 00 00 00 00 00 26 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 .....&...testcase/gtVariationTes
0d60 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 26 07 00 00 a5 9e 02 4a 26 07 00 00 fe 9d 6a 5c b6 tCaseMethod.php&......J&.....j\.
0d80 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 4d 61 69 6e 20 63 6f 64 65 20 66 6f .......<?php./**..*.Main.code.fo
0da0 72 20 74 65 73 74 20 63 61 73 65 20 67 65 6e 65 72 61 74 69 6f 6e 0a 20 2a 2f 0a 0a 72 65 71 75 r.test.case.generation..*/..requ
0dc0 69 72 65 5f 6f 6e 63 65 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 67 ire_once.dirname(__FILE__)...'/g
0de0 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 27 3b 0a 0a 2f 2f 56 65 72 73 69 6f 6e 20 63 68 65 63 6b tAutoload.php';..//Version.check
0e00 2e 20 57 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 6f 6e 20 6c 65 73 73 20 74 68 61 6e 20 50 48 50 35 ..Will.not.run.on.less.than.PHP5
0e20 33 3b 0a 0a 6c 69 73 74 28 24 6d 61 6a 6f 72 2c 20 24 6d 69 6e 6f 72 2c 20 24 62 75 67 29 20 3d 3;..list($major,.$minor,.$bug).=
0e40 20 65 78 70 6c 6f 64 65 28 22 2e 22 2c 20 70 68 70 76 65 72 73 69 6f 6e 28 29 2c 20 33 29 3b 0a .explode(".",.phpversion(),.3);.
0e60 20 69 66 28 24 6d 61 6a 6f 72 20 3d 3d 20 35 29 20 7b 0a 20 20 20 20 20 20 20 69 66 28 24 6d 69 .if($major.==.5).{........if($mi
0e80 6e 6f 72 20 3c 20 33 29 20 7b 20 64 69 65 28 22 53 6f 72 72 79 2c 20 79 6f 75 20 6e 65 65 64 20 nor.<.3).{.die("Sorry,.you.need.
0ea0 50 48 50 20 76 65 72 73 69 6f 6e 20 35 2e 33 20 6f 72 20 67 72 65 61 74 65 72 20 74 6f 20 72 75 PHP.version.5.3.or.greater.to.ru
0ec0 6e 20 74 68 69 73 2e 5c 6e 22 29 3b 20 7d 0a 20 20 20 7d 0a 20 20 20 69 66 20 28 24 6d 61 6a 6f n.this.\n");.}....}....if.($majo
0ee0 72 20 3c 20 35 29 20 7b 20 64 69 65 20 28 22 53 65 72 69 6f 75 73 6c 79 2c 20 79 6f 75 20 6e 65 r.<.5).{.die.("Seriously,.you.ne
0f00 65 64 20 74 6f 20 75 70 67 72 61 64 65 20 79 6f 75 20 50 48 50 20 6c 65 76 65 6c 5c 6e 22 29 3b ed.to.upgrade.you.PHP.level\n");
0f20 20 7d 0a 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 6e 65 77 20 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e .}...$options.=.new.gtCommandLin
0f40 65 4f 70 74 69 6f 6e 73 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 eOptions();.$optionalSections.=.
0f60 6e 65 77 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 28 29 3b 0a 0a 74 72 79 7b 0a new.gtOptionalSections();..try{.
0f80 20 20 24 6f 70 74 69 6f 6e 73 2d 3e 70 61 72 73 65 28 24 61 72 67 76 29 3b 0a 7d 20 63 61 74 63 ..$options->parse($argv);.}.catc
0fa0 68 20 28 65 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 20 20 65 63 68 6f 20 24 65 2d 3e 67 65 h.(exception.$e).{...echo.$e->ge
0fc0 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 22 3b 0a 20 20 64 69 65 28 29 3b 0a 7d 0a 0a 69 66 28 tMessage()."\n";...die();.}..if(
0fe0 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 68 27 29 29 20 7b 0a 20 20 64 69 $options->hasOption('h')).{...di
1000 65 28 67 74 54 65 78 74 3a 3a 67 65 74 28 27 68 65 6c 70 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b e(gtText::get('help'));.}..try.{
1020 0a 20 20 24 70 72 65 43 6f 6e 64 69 74 69 6f 6e 73 20 3d 20 6e 65 77 20 67 74 50 72 65 43 6f 6e ...$preConditions.=.new.gtPreCon
1040 64 69 74 69 6f 6e 4c 69 73 74 28 29 3b 0a 20 20 24 70 72 65 43 6f 6e 64 69 74 69 6f 6e 73 2d 3e ditionList();...$preConditions->
1060 63 68 65 63 6b 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 65 78 63 65 70 74 check($options);.}.catch.(except
1080 69 6f 6e 20 24 65 29 20 7b 0a 20 20 65 63 68 6f 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 ion.$e).{...echo.$e->getMessage(
10a0 29 2e 22 5c 6e 22 3b 0a 20 20 64 69 65 28 29 3b 0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d )."\n";...die();.}..if($options-
10c0 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27 29 29 20 7b 0a 20 20 24 6f 70 74 69 6f 6e 61 6c 53 65 >hasOption('s')).{...$optionalSe
10e0 63 74 69 6f 6e 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a ctions->setOptions($options);.}.
1100 20 20 0a 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 .....if($options->hasOption('c')
1120 29 20 7b 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f ).{...$name.=.$options->getOptio
1140 6e 28 27 63 27 29 2e 22 5f 22 2e 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 n('c')."_".$options->getOption('
1160 6d 27 29 3b 0a 20 20 24 6d 65 74 68 6f 64 20 3d 20 6e 65 77 20 67 74 4d 65 74 68 6f 64 28 24 6f m');...$method.=.new.gtMethod($o
1180 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 27 29 2c 20 24 6f 70 74 69 6f 6e 73 ptions->getOption('c'),.$options
11a0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 27 29 29 3b 0a 20 20 0a 20 20 24 6d 65 74 68 6f 64 2d ->getOption('m'));......$method-
11c0 3e 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e >setArgumentNames();...$method->
11e0 73 65 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 setArgumentLists();...$method->s
1200 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 etInitialisationStatements();...
1220 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 ...$method->setConstructorArgume
1240 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 65 74 43 6f 6e 73 74 72 75 ntNames();...$method->setConstru
1260 63 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d ctorInitStatements();...$method-
1280 3e 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 7d >setConstructorArgumentList();.}
12a0 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 29 20 7b ..if($options->hasOption('f')).{
12c0 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 ...$name.=.$options->getOption('
12e0 66 27 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 20 3d 20 6e 65 77 20 67 74 46 75 6e 63 74 69 6f f');...$function.=.new.gtFunctio
1300 6e 28 24 6e 61 6d 65 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 n($name);...$function->setArgume
1320 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d ntNames();...$function->setArgum
1340 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e 2d 3e 73 65 74 49 6e 69 74 entLists();...$function->setInit
1360 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 7d 0a 0a 0a 69 66 28 24 ialisationStatements();.}...if($
1380 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 62 27 29 29 20 7b 0a 20 20 69 66 28 options->hasOption('b')).{...if(
13a0 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 20 $options->hasOption('c')).{.....
13c0 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 3a 3a 67 65 74 $testCase.=.gtBasicTestCase::get
13e0 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d 65 74 Instance($optionalSections,.'met
1400 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 4d 65 74 68 6f 64 28 hod');.....$testCase->setMethod(
1420 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 $method);...}.else.{.....$testCa
1440 73 65 20 3d 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 se.=.gtBasicTestCase::getInstanc
1460 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 24 74 65 73 74 43 e($optionalSections);.....$testC
1480 61 73 65 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a 20 20 7d ase->setFunction($function);...}
14a0 0a 0a 20 20 24 74 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 ....$testCase->constructTestCase
14c0 28 29 3b 0a 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 3a 3a 77 72 69 74 65 28 24 6e ();...gtTestCaseWriter::write($n
14e0 61 6d 65 2c 20 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 2c 20 27 62 27 29 ame,.$testCase->toString(),.'b')
1500 3b 0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 65 27 29 ;.}..if($options->hasOption('e')
1520 29 20 7b 0a 20 20 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 ).{...if($options->hasOption('c'
1540 29 29 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 45 72 72 6f 72 54 65 73 74 )).{.....$testCase.=.gtErrorTest
1560 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 Case::getInstance($optionalSecti
1580 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 ons,.'method');.....$testCase->s
15a0 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 etMethod($method);...}.else.{...
15c0 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 3a 3a 67 ..$testCase.=.gtErrorTestCase::g
15e0 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 etInstance($optionalSections);..
1600 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 ...$testCase->setFunction($funct
1620 69 6f 6e 29 3b 0a 20 20 7d 0a 0a 20 20 24 74 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 ion);...}....$testCase->construc
1640 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 3a tTestCase();...gtTestCaseWriter:
1660 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e :write($name,.$testCase->toStrin
1680 67 28 29 2c 20 27 65 27 29 3b 0a 7d 0a 0a 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 g(),.'e');.}....if($options->has
16a0 4f 70 74 69 6f 6e 28 27 76 27 29 29 20 7b 0a 20 20 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 Option('v')).{...if($options->ha
16c0 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e sOption('c')).{.....$testCaseCon
16e0 74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67 tainer.=.gtVariationContainer::g
1700 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d etInstance($optionalSections,.'m
1720 65 74 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 2d ethod');.....$testCaseContainer-
1740 3e 73 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a >setMethod($method);...}.else.{.
1760 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61 ....$testCaseContainer.=.gtVaria
1780 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 20 28 24 6f 70 74 tionContainer::getInstance.($opt
17a0 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e ionalSections);.....$testCaseCon
17c0 74 61 69 6e 65 72 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a tainer->setFunction($function);.
17e0 20 20 7d 0a 0a 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 2d 3e 63 6f 6e 73 74 ..}....$testCaseContainer->const
1800 72 75 63 74 41 6c 6c 28 29 3b 0a 0a 20 20 24 74 65 73 74 73 20 3d 20 24 74 65 73 74 43 61 73 65 ructAll();....$tests.=.$testCase
1820 43 6f 6e 74 61 69 6e 65 72 2d 3e 67 65 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 73 28 29 3b 0a Container->getVariationTests();.
1840 0a 20 20 24 63 6f 75 6e 74 20 3d 20 31 3b 0a 20 20 66 6f 72 65 61 63 68 28 24 74 65 73 74 73 20 ...$count.=.1;...foreach($tests.
1860 61 73 20 24 74 65 73 74 29 20 7b 0a 20 20 20 20 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 as.$test).{.....gtTestCaseWriter
1880 3a 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 74 65 73 74 2c 20 27 76 27 2c 20 24 63 6f 75 6e ::write($name,.$test,.'v',.$coun
18a0 74 29 3b 0a 20 20 20 20 24 63 6f 75 6e 74 2b 2b 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 0a 3c 3f 70 68 t);.....$count++;...}..}.?>.<?ph
18c0 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 72 65 70 65 72 65 73 65 6e 74 73 20 61 20 73 69 p../**..*.Class.reperesents.a.si
18e0 6e 67 6c 65 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 2e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 ngle.PHP.function...*..*/.class.
1900 67 74 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 53 75 62 6a 65 63 74 gtFunction.extends.gtTestSubject
1920 20 7b 0a 0a 20 20 70 72 69 76 61 74 65 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 0a .{....private.$functionName;....
1940 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e ../**....*.Set.the.name.of.the.n
1960 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 ame.of.the.function....*....*.@p
1980 61 72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 0a 20 20 20 2a 2f 0a aram.string.$functionName....*/.
19a0 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 ..public.function.__construct($f
19c0 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 20 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 66 75 6e 63 74 unctionName)..{.....$this->funct
19e0 69 6f 6e 4e 61 6d 65 20 3d 20 24 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a 20 ionName.=.$functionName;...}....
1a00 20 2f 2a 2a 0a 20 20 20 2a 20 47 65 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 66 75 6e 63 74 ./**....*.Get.the.names.of.funct
1a20 69 6f 6e 20 61 72 67 6d 65 6e 74 73 20 61 6e 64 20 69 6e 69 74 69 61 6c 69 73 65 20 6d 61 6e 64 ion.argments.and.initialise.mand
1a40 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 61 72 72 61 atory.and.optional.argument.arra
1a60 79 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ys....*....*/...public.function.
1a80 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 24 66 75 6e 63 74 69 setArgumentNames().{.....$functi
1aa0 6f 6e 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 46 75 6e 63 74 69 6f 6e 28 24 74 68 69 73 on=.new.ReflectionFunction($this
1ac0 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 ->functionName);......foreach.($
1ae0 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 20 function->getParameters().as.$i.
1b00 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 20 20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e 69 73 =>.$param).{.......if($param->is
1b20 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 Optional()).{.........$this->opt
1b40 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 ionalArgumentNames[].=.$param->g
1b60 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 etName();.......}.else.{........
1b80 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d .$this->mandatoryArgumentNames[]
1ba0 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 .=.$param->getName();.......}...
1bc0 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 ..}...}...../**....*.Return.the.
1be0 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 name.of.the.function....*....*.@
1c00 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e return.string....*/...public.fun
1c20 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 ction.getName().{.....return.$th
1c40 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 is->functionName;...}..}.?><?php
1c60 0a 0a 2f 2a 2a 0a 20 2a 20 47 65 74 20 61 20 74 65 78 74 20 6d 65 73 73 61 67 65 0a 20 2a 0a 20 ../**..*.Get.a.text.message..*..
1c80 2a 2f 0a 63 6c 61 73 73 20 67 74 54 65 78 74 0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 47 65 */.class.gtText.{..../**....*.Ge
1ca0 74 20 74 68 65 20 74 65 78 74 20 6d 65 73 73 61 67 65 20 61 6e 64 20 72 65 74 75 72 6e 20 69 74 t.the.text.message.and.return.it
1cc0 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a 20 ....*....*.@param.string.$name..
1ce0 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 ..*.@return.string....*/...publi
1d00 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 20 7b 0a 20 c.static.function.get($name).{..
1d20 20 20 20 24 66 69 6c 65 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 ...$filename.=.dirname(__FILE__)
1d40 20 2e 20 27 2f 74 65 78 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a ...'/texts/'...$name...'.txt';..
1d60 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 ....if.(!file_exists($filename))
1d80 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f .{.......throw.new.LogicExceptio
1da0 6e 28 27 54 68 65 20 74 65 78 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 64 6f 65 73 20 6e n('The.text.'...$name...'.does.n
1dc0 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 66 69 ot.exist');.....}......return.fi
1de0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 7d 0a le_get_contents($filename);...}.
1e00 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 24 67 74 43 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 }..?><?php...$gtClassMap.=.array
1e20 28 0a 20 0a 20 20 20 20 27 67 74 43 6f 64 65 53 6e 69 70 70 65 74 27 20 20 20 20 20 20 20 20 20 (.......'gtCodeSnippet'.........
1e40 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 43 6f 64 65 53 6e 69 70 70 65 74 2e 70 68 70 27 2c 0a ........=>.'gtCodeSnippet.php',.
1e60 20 20 20 20 27 67 74 54 65 73 74 53 75 62 6a 65 63 74 27 20 20 20 20 20 20 20 20 20 20 20 20 20 ....'gtTestSubject'.............
1e80 20 20 20 20 3d 3e 20 27 67 74 54 65 73 74 53 75 62 6a 65 63 74 2e 70 68 70 27 2c 0a 20 20 20 20 ....=>.'gtTestSubject.php',.....
1ea0 27 67 74 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 'gtFunction'....................
1ec0 3d 3e 20 27 67 74 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 65 74 68 =>.'gtFunction.php',.....'gtMeth
1ee0 6f 64 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 4d od'......................=>.'gtM
1f00 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 ethod.php',.....'gtTestCaseWrite
1f20 72 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 54 65 73 74 43 61 73 65 57 72 r'..............=>.'gtTestCaseWr
1f40 69 74 65 72 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 54 65 78 74 27 20 20 20 20 20 20 20 20 20 iter.php',.....'gtText'.........
1f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 54 65 78 74 2e 70 68 70 27 2c 0a ...............=>.'gtText.php',.
1f80 20 0a 20 0a 20 0a 20 20 20 20 27 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 27 ..........'gtCommandLineOptions'
1fa0 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e ..........=>.'setup/gtCommandLin
1fc0 65 4f 70 74 69 6f 6e 73 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4f 70 74 69 6f 6e 61 6c 53 65 eOptions.php',.....'gtOptionalSe
1fe0 63 74 69 6f 6e 73 27 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 4f ctions'............=>.'setup/gtO
2000 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 69 73 ptionalSections.php',.....'gtMis
2020 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 27 20 20 20 20 3d 3e 20 27 73 65 singArgumentException'....=>.'se
2040 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 tup/exceptions/gtMissingArgument
2060 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 55 6e 6b 6e 6f 77 6e 4f 70 Exception.php',.....'gtUnknownOp
2080 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 78 tionException'......=>.'setup/ex
20a0 63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f ceptions/gtUnknownOptionExceptio
20c0 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 78 63 n.php',.....'gtUnknownSectionExc
20e0 65 70 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e eption'......=>.'setup/exception
2100 73 2f 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 s/gtUnknownSectionException.php'
2120 2c 0a 20 20 20 20 27 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e ,.....'gtMissingOptionsException
2140 27 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 73 '.....=>.'setup/exceptions/gtMis
2160 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 20 20 singOptionsException.php',......
2180 20 27 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .'gtPreCondition'...............
21a0 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 27 2c 0a .=>.'setup/gtPreCondition.php',.
21c0 20 20 20 20 27 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 4c 69 73 74 27 20 20 20 20 20 20 20 20 ....'gtPreConditionList'........
21e0 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 4c 69 73 74 ....=>.'setup/gtPreConditionList
2200 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 .php',.....'gtIsSpecifiedTestTyp
2220 65 27 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f e'.........=>.'setup/preconditio
2240 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 2e 70 68 70 27 2c 0a 20 ns/gtIsSpecifiedTestType.php',..
2260 20 20 20 27 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 20 20 ...'gtIfClassHasMethod'.........
2280 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 66 43 ...=>.'setup/preconditions/gtIfC
22a0 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 53 70 65 lassHasMethod.php',.....'gtIsSpe
22c0 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 27 20 3d 3e 20 27 73 65 74 75 cifiedFunctionOrMethod'.=>.'setu
22e0 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65 64 46 75 6e p/preconditions/gtIsSpecifiedFun
2300 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56 61 6c ctionOrMethod.php',.....'gtIsVal
2320 69 64 43 6c 61 73 73 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 idClass'................=>.'setu
2340 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e 70 p/preconditions/gtIsValidClass.p
2360 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 27 20 20 20 20 20 20 hp',.....'gtIsValidMethod'......
2380 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 .........=>.'setup/preconditions
23a0 2f 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 /gtIsValidMethod.php',.....'gtIs
23c0 56 61 6c 69 64 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 ValidFunction'.............=>.'s
23e0 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 46 75 6e 63 etup/preconditions/gtIsValidFunc
2400 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 0a 20 20 20 20 20 27 67 74 54 65 73 74 43 61 73 65 27 tion.php',..........'gtTestCase'
2420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f ...................=>.'testcase/
2440 67 74 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 gtTestCase.php',......'gtVariati
2460 6f 6e 54 65 73 74 43 61 73 65 27 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 onTestCase'..........=>.'testcas
2480 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 e/gtVariationTestCase.php',.....
24a0 20 27 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 20 .'gtVariationTestCaseFunction'..
24c0 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 =>.'testcase/gtVariationTestCase
24e0 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e Function.php',......'gtVariation
2500 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f TestCaseMethod'....=>.'testcase/
2520 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a gtVariationTestCaseMethod.php',.
2540 20 0a 20 20 20 20 20 27 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 27 20 20 20 20 20 20 20 20 .......'gtBasicTestCase'........
2560 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 ......=>.'testcase/gtBasicTestCa
2580 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 46 75 se.php',......'gtBasicTestCaseFu
25a0 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 nction'......=>.'testcase/gtBasi
25c0 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 cTestCaseFunction.php',......'gt
25e0 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 20 3d 3e 20 27 BasicTestCaseMethod'........=>.'
2600 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 testcase/gtBasicTestCaseMethod.p
2620 68 70 27 2c 0a 20 0a 20 20 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 27 20 20 20 hp',........'gtErrorTestCase'...
2640 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 54 ...........=>.'testcase/gtErrorT
2660 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43 estCase.php',......'gtErrorTestC
2680 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 aseFunction'......=>.'testcase/g
26a0 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 tErrorTestCaseFunction.php',....
26c0 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 ..'gtErrorTestCaseMethod'.......
26e0 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 .=>.'testcase/gtErrorTestCaseMet
2700 68 6f 64 2e 70 68 70 27 2c 0a 20 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e hod.php',........'gtVariationCon
2720 74 61 69 6e 65 72 27 20 20 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 tainer'.........=>.'testcase/gtV
2740 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 ariationContainer.php',......'gt
2760 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 27 20 20 20 3d 3e 20 27 VariationContainerMethod'...=>.'
2780 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 74 testcase/gtVariationContainerMet
27a0 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 hod.php',......'gtVariationConta
27c0 69 6e 65 72 46 75 6e 63 74 69 6f 6e 27 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 inerFunction'.=>.'testcase/gtVar
27e0 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 29 iationContainerFunction.php',..)
2800 3b 0a 3f 3e 0a 54 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 61 20 76 61 ;.?>.The.method.name.is.not.a.va
2820 6c 69 64 20 50 48 50 20 6d 65 74 68 6f 64 20 6e 61 6d 65 2e 0a 43 68 65 63 6b 20 74 68 61 74 20 lid.PHP.method.name..Check.that.
2840 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6d 65 74 the.extension.containing.the.met
2860 68 6f 64 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 0a 54 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 20 hod.is.loaded....The.class.name.
2880 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20 50 48 50 20 63 6c 61 73 73 20 6e 61 6d 65 2e 0a 43 is.not.a.valid.PHP.class.name..C
28a0 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 heck.that.the.extension.containi
28c0 6e 67 20 74 68 65 20 63 6c 61 73 73 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 0a 50 6c 65 61 73 65 ng.the.class.is.loaded....Please
28e0 20 73 70 65 63 69 66 79 20 62 61 73 69 63 2c 20 65 72 72 6f 72 20 6f 72 20 76 61 72 69 61 74 69 .specify.basic,.error.or.variati
2900 6f 6e 20 74 65 73 74 73 2e 0a 0a 55 73 61 67 65 3a 0a 70 68 70 20 67 65 6e 65 72 61 74 65 2d 70 on.tests...Usage:.php.generate-p
2920 68 70 74 2e 70 68 70 20 20 2d 66 20 3c 66 75 6e 63 74 69 6f 6e 5f 6e 61 6d 65 3e 20 7c 2d 63 20 hpt.php..-f.<function_name>.|-c.
2940 3c 63 6c 61 73 73 5f 6e 61 6d 65 3e 20 2d 6d 20 3c 6d 65 74 68 6f 64 5f 6e 61 6d 65 3e 20 2d 62 <class_name>.-m.<method_name>.-b
2960 7c 65 7c 76 20 5b 2d 73 20 73 6b 69 70 69 66 3a 69 6e 69 3a 63 6c 65 61 6e 3a 64 6f 6e 65 5d 20 |e|v.[-s.skipif:ini:clean:done].
2980 5b 2d 6b 20 77 69 6e 7c 6e 6f 74 77 69 6e 7c 36 34 62 7c 6e 6f 74 36 34 62 5d 20 5b 2d 78 20 65 [-k.win|notwin|64b|not64b].[-x.e
29a0 78 74 5d 0a 0a 57 68 65 72 65 3a 0a 2d 66 20 66 75 6e 63 74 69 6f 6e 5f 6e 61 6d 65 20 2e 2e 2e xt]..Where:.-f.function_name....
29c0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 4e 61 6d 65 20 6f 66 20 50 48 50 20 66 75 6e 63 74 ...............Name.of.PHP.funct
29e0 69 6f 6e 2c 20 65 67 20 63 6f 73 0a 2d 63 20 63 6c 61 73 73 20 6e 61 6d 65 20 2e 2e 2e 2e 2e 2e ion,.eg.cos.-c.class.name.......
2a00 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 4e 61 6d 65 20 6f 66 20 63 6c 61 73 73 2c 20 65 67 ...............Name.of.class,.eg
2a20 20 44 4f 4d 44 6f 63 75 6d 65 6e 74 0a 2d 6d 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 2e 2e 2e 2e .DOMDocument.-m.method.name.....
2a40 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 4e 61 6d 65 20 6f 66 20 6d 65 74 68 6f 64 2c 20 ................Name.of.method,.
2a60 65 67 20 63 72 65 61 74 65 41 74 74 72 69 62 75 74 65 0a 2d 62 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e eg.createAttribute.-b...........
2a80 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 62 ......................Generate.b
2aa0 61 73 69 63 20 74 65 73 74 73 0a 2d 65 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e asic.tests.-e...................
2ac0 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 65 72 72 6f 72 20 74 65 73 ..............Generate.error.tes
2ae0 74 73 0a 2d 76 20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e ts.-v...........................
2b00 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 73 0a 2d ......Generate.variation.tests.-
2b20 73 20 73 65 63 74 69 6f 6e 73 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e s.sections......................
2b40 2e 20 43 72 65 61 74 65 20 6f 70 74 69 6f 6e 61 6c 20 73 65 63 74 69 6f 6e 73 2c 20 63 6f 6c 6f ..Create.optional.sections,.colo
2b60 6e 20 73 65 70 61 72 61 74 65 64 20 6c 69 73 74 0a 2d 6b 20 73 6b 69 70 69 66 20 6b 65 79 2e 2e n.separated.list.-k.skipif.key..
2b80 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 53 6b 69 70 69 66 20 6f 70 74 69 6f ....................Skipif.optio
2ba0 6e 2c 20 6f 6e 6c 79 20 75 73 65 64 20 69 66 20 2d 73 20 73 6b 69 70 69 66 20 69 73 20 75 73 65 n,.only.used.if.-s.skipif.is.use
2bc0 64 2e 0a 2d 78 20 65 78 74 65 6e 73 69 6f 6e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e d..-x.extension.................
2be0 2e 2e 2e 2e 2e 2e 53 6b 69 70 69 66 20 6f 70 74 69 6f 6e 2c 20 73 70 65 63 69 66 79 20 65 78 74 ......Skipif.option,.specify.ext
2c00 65 6e 73 69 6f 6e 20 74 6f 20 63 68 65 63 6b 20 66 6f 72 0a 2d 68 20 2e 2e 2e 2e 2e 2e 2e 2e 2e ension.to.check.for.-h..........
2c20 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 50 72 69 6e 74 20 74 68 69 .......................Print.thi
2c40 73 20 6d 65 73 73 61 67 65 0a 0a 59 6f 75 20 68 61 76 65 20 67 69 76 65 6e 20 61 20 63 6c 61 73 s.message..You.have.given.a.clas
2c60 73 20 6e 61 6d 65 20 62 75 74 20 6e 6f 74 20 73 75 70 70 6c 69 65 64 20 61 20 6d 65 74 68 6f 64 s.name.but.not.supplied.a.method
2c80 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 2e 0a 54 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 .name.to.test..The.method.name.i
2ca0 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 0a 50 6c 65 61 73 65 20 73 75 70 70 6c 79 20 61 20 66 75 s.required....Please.supply.a.fu
2cc0 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 74 6f 20 62 65 20 74 65 73 74 nction.or.method.name.to.be.test
2ce0 65 64 2e 0a 0a 0a 54 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 61 ed....The.function.name.is.not.a
2d00 20 76 61 6c 69 64 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 2e 0a 43 68 65 63 6b 20 .valid.PHP.function.name..Check.
2d20 74 68 61 74 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 that.the.extension.containing.th
2d40 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2e 0a 0a 3c 3f 70 68 70 0a 0a 2f 2a e.function.is.loaded...<?php../*
2d60 2a 0a 20 2a 20 52 65 74 72 69 65 76 65 73 20 63 6f 64 65 20 73 6e 69 70 70 65 74 73 20 66 6f 72 *..*.Retrieves.code.snippets.for
2d80 20 61 64 64 69 6e 67 20 74 6f 20 74 65 73 74 20 63 61 73 65 73 0a 20 2a 20 0a 20 2a 2f 0a 63 6c .adding.to.test.cases..*...*/.cl
2da0 61 73 73 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 ass.gtCodeSnippet.{..../**....*.
2dc0 67 65 74 20 74 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 61 6e 64 20 69 6e 69 74 69 61 6c get.the.code.snippet.and.initial
2de0 69 73 65 20 61 6e 20 61 72 72 61 79 20 77 69 74 68 20 69 74 0a 20 20 20 2a 0a 20 20 20 2a 20 40 ise.an.array.with.it....*....*.@
2e00 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 param.string.$name....*.@return.
2e20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 array....*/...public.static.func
2e40 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 24 66 69 6c 65 tion.get($name).{..........$file
2e60 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 63 6f 64 name.=.dirname(__FILE__)...'/cod
2e80 65 53 6e 69 70 70 65 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a 20 eSnippets/'...$name...'.txt';...
2ea0 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 20 ...if.(!file_exists($filename)).
2ec0 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e {.......throw.new.LogicException
2ee0 28 27 54 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 ('The.code.snippet.'...$name...'
2f00 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 .does.not.exist');.....}........
2f20 20 20 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 ..$lines.=.file($filename);.....
2f40 66 6f 72 65 61 63 68 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 29 20 7b 0a 20 20 20 20 20 20 24 61 foreach($lines.as.$l).{.......$a
2f60 72 72 61 79 5b 5d 20 3d 20 72 74 72 69 6d 28 24 6c 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 rray[].=.rtrim($l);.....}.....re
2f80 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 turn.$array;...}........./**....
2fa0 2a 20 41 70 70 65 6e 64 20 74 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 6f 6e 20 74 6f 20 *.Append.the.code.snippet.on.to.
2fc0 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72 61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 an.existing.array....*....*.@par
2fe0 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 am.string.$name....*.@param.arra
3000 79 20 24 61 72 72 61 79 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a y.$array....*.@return.array....*
3020 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e /...public.static.function.appen
3040 64 28 24 6e 61 6d 65 2c 20 24 61 72 72 61 79 29 20 7b 0a 20 20 20 20 24 66 69 6c 65 6e 61 6d 65 d($name,.$array).{.....$filename
3060 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 63 6f 64 65 53 6e 69 .=.dirname(__FILE__)...'/codeSni
3080 70 70 65 74 73 2f 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a 20 20 20 20 69 ppets/'...$name...'.txt';......i
30a0 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 20 20 f.(!file_exists($filename)).{...
30c0 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 68 ....throw.new.LogicException('Th
30e0 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 64 6f 65 e.code.snippet.'...$name...'.doe
3100 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 74 65 78 74 20 s.not.exist');.....}......$text.
3120 3d 20 20 66 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 =..file($filename);.....foreach.
3140 28 24 74 65 78 74 20 61 73 20 24 74 29 20 7b 0a 20 20 20 20 20 20 24 61 72 72 61 79 5b 5d 20 3d ($text.as.$t).{.......$array[].=
3160 20 72 74 72 69 6d 28 24 74 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 72 .rtrim($t);.....}..........retur
3180 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 n.$array;...}........./**....*.A
31a0 70 70 65 6e 64 73 20 62 6c 61 6e 6b 20 65 6e 74 72 69 65 73 20 6f 6e 20 74 6f 20 61 6e 20 61 72 ppends.blank.entries.on.to.an.ar
31c0 72 61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 69 6e 74 20 24 6e 75 6d 62 65 72 ray....*....*.@param.int.$number
31e0 4f 66 4c 69 6e 65 73 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 20 24 61 72 72 61 79 OfLines....*.@param.array.$array
3200 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c ....*.@return.array....*/...publ
3220 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 ic.static.function.appendBlankLi
3240 6e 65 73 28 24 6e 75 6d 62 65 72 4f 66 4c 69 6e 65 73 2c 20 24 61 72 72 61 79 29 20 7b 0a 0a 20 nes($numberOfLines,.$array).{...
3260 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24 69 3c 20 24 6e 75 6d 62 65 72 4f 66 4c 69 6e 65 73 ...for.($i=0;.$i<.$numberOfLines
3280 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 24 61 72 72 61 79 5b 5d 20 3d 20 22 22 3b 0a 20 ;.$i++).{.......$array[].=."";..
32a0 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d ...}..........return.$array;...}
32c0 0a 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 0a 67 74 41 75 74 6f 6c 6f 61 64 3a 3a 69 6e 69 74 ....}.?><?php...gtAutoload::init
32e0 28 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 41 75 74 6f 6c 6f 61 64 65 72 20 75 73 69 6e 67 20 61 20 6d ();../**..*.Autoloader.using.a.m
3300 61 70 20 66 69 6c 65 20 28 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 29 0a 20 2a 20 64 65 66 69 ap.file.(gtClassMap.php)..*.defi
3320 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 20 74 6f 20 6c 6f 61 64 20 65 61 63 68 20 63 6c 61 73 73 ning.the.file.to.load.each.class
3340 20 66 72 6f 6d 2e 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 41 75 74 6f 6c 6f 61 64 0a 7b 0a 20 20 .from...*/.class.gtAutoload.{...
3360 2f 2a 2a 0a 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 /**....*.@var.array....*/...prot
3380 65 63 74 65 64 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 4d 61 70 3b 0a 0a 20 20 2f 2a 2a 0a 20 ected.static.$classMap;..../**..
33a0 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 ..*.@var.string....*/...protecte
33c0 64 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 50 61 74 68 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 d.static.$classPath;...../**....
33e0 2a 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 20 20 2a *.Initialize.the.autoloader....*
3400 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6c 6c 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 ....*.@return.null....*/...publi
3420 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 28 29 0a 20 20 7b 0a 20 20 20 c.static.function.init()...{....
3440 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49 .self::$classPath.=.dirname(__FI
3460 4c 45 5f 5f 29 3b 0a 0a 20 20 20 20 69 66 20 28 73 75 62 73 74 72 28 73 65 6c 66 3a 3a 24 63 6c LE__);......if.(substr(self::$cl
3480 61 73 73 50 61 74 68 2c 20 2d 31 29 20 21 3d 20 27 2f 27 29 20 7b 0a 20 20 20 20 20 20 73 65 6c assPath,.-1).!=.'/').{.......sel
34a0 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 3d 20 27 2f 27 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 f::$classPath..=.'/';.....}.....
34c0 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 .if.(file_exists(self::$classPat
34e0 68 20 2e 20 27 67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 27 29 29 20 7b 0a 20 20 20 20 20 20 69 h...'gtClassMap.php')).{.......i
3500 6e 63 6c 75 64 65 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 20 27 67 74 43 6c 61 nclude.self::$classPath...'gtCla
3520 73 73 4d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 4d 61 ssMap.php';.......self::$classMa
3540 70 20 3d 20 24 67 74 43 6c 61 73 73 4d 61 70 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 28 p.=.$gtClassMap;.....}......if.(
3560 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 5f 5f 61 75 74 6f 6c 6f 61 64 27 29 29 20 7b function_exists('__autoload')).{
3580 0a 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 27 5f 5f .......spl_autoload_register('__
35a0 61 75 74 6f 6c 6f 61 64 27 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c autoload');.....}......spl_autol
35c0 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 67 74 41 75 74 6f 6c 6f 61 64 27 2c oad_register(array('gtAutoload',
35e0 20 27 61 75 74 6f 6c 6f 61 64 27 29 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 .'autoload'));...}...../**....*.
3600 41 75 74 6f 6c 6f 61 64 20 6d 65 74 68 6f 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d Autoload.method....*....*.@param
3620 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20 43 6c 61 73 73 20 6e 61 6d 65 20 74 6f 20 61 75 74 .string.$class.Class.name.to.aut
3640 6f 6c 6f 61 64 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e 75 6c 6c 0a 20 20 20 2a 2f 0a 20 20 oload....*.@return.null....*/...
3660 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 public.static.function.autoload(
3680 24 63 6c 61 73 73 29 0a 20 20 7b 0a 20 20 20 20 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a $class)...{.....if.(isset(self::
36a0 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 20 20 20 20 20 20 69 6e 63 6c $classMap[$class])).{.......incl
36c0 75 64 65 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e 20 73 65 6c 66 3a 3a 24 63 6c ude.self::$classPath...self::$cl
36e0 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 3f 3e 3c assMap[$class];.....}...}.}..?><
3700 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 50 61 72 73 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 ?php../**..*.Parse.command.line.
3720 6f 70 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 43 6f 6d 6d 61 6e 64 4c 69 options..*..*/.class.gtCommandLi
3740 6e 65 4f 70 74 69 6f 6e 73 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 68 6f 72 74 4f neOptions.{....protected.$shortO
3760 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 27 62 27 2c 0a 20 20 20 20 27 65 27 ptions.=.array(.....'b',.....'e'
3780 2c 0a 20 20 20 20 27 76 27 2c 0a 20 20 20 20 27 68 27 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 6f 74 ,.....'v',.....'h',...);....prot
37a0 65 63 74 65 64 20 24 73 68 6f 72 74 4f 70 74 69 6f 6e 73 57 69 74 68 41 72 67 73 20 3d 20 61 72 ected.$shortOptionsWithArgs.=.ar
37c0 72 61 79 28 0a 20 20 20 20 27 63 27 2c 0a 20 20 20 20 27 6d 27 2c 0a 20 20 20 20 27 66 27 2c 0a ray(.....'c',.....'m',.....'f',.
37e0 20 20 20 20 27 69 27 2c 0a 20 20 20 20 27 73 27 2c 0a 20 20 20 20 27 78 27 2c 0a 20 20 20 20 27 ....'i',.....'s',.....'x',.....'
3800 6b 27 2c 0a 20 20 29 3b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 k',...);......protected.$options
3820 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 68 6f 72 74 4f ;....protected.function.isShortO
3840 70 74 69 6f 6e 28 24 61 72 67 29 0a 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 28 73 75 62 73 ption($arg)...{.....return.(subs
3860 74 72 28 24 61 72 67 2c 20 30 2c 20 31 29 20 3d 3d 20 27 2d 27 29 20 26 26 20 28 73 75 62 73 74 tr($arg,.0,.1).==.'-').&&.(subst
3880 72 28 24 61 72 67 2c 20 31 2c 20 31 29 20 21 3d 20 27 2d 27 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 r($arg,.1,.1).!=.'-');...}....pu
38a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 69 64 4f 70 74 69 6f 6e 41 72 67 28 24 blic.function.isValidOptionArg($
38c0 61 72 72 61 79 2c 20 24 69 6e 64 65 78 29 20 7b 0a 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 array,.$index).{.....if.(!isset(
38e0 24 61 72 72 61 79 5b 24 69 6e 64 65 78 5d 29 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 72 65 74 $array[$index])).....{.......ret
3900 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 73 urn.false;.....}.....return.subs
3920 74 72 28 24 61 72 72 61 79 5b 24 69 6e 64 65 78 5d 2c 20 30 2c 20 31 29 20 21 3d 20 27 2d 27 3b tr($array[$index],.0,.1).!=.'-';
3940 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 ...}.....public.function.parse($
3960 61 72 67 76 29 0a 20 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 28 24 61 72 67 76 29 20 3c 20 argv)...{.....if(count($argv).<.
3980 32 29 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 4d 69 73 73 69 6e 67 4f 70 2).{.......throw.new.gtMissingOp
39a0 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 tionsException('Command.line.opt
39c0 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72 65 64 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a ions.are.required');.....}......
39e0 20 20 20 20 66 6f 72 20 28 24 69 3d 31 3b 20 24 69 3c 63 6f 75 6e 74 28 24 61 72 67 76 29 3b 20 ....for.($i=1;.$i<count($argv);.
3a00 24 69 2b 2b 29 20 7b 0a 0a 20 20 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 68 6f 72 $i++).{........if.($this->isShor
3a20 74 4f 70 74 69 6f 6e 28 24 61 72 67 76 5b 24 69 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 6f tOption($argv[$i])).{.........$o
3a40 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28 24 61 72 67 76 5b 24 69 5d 2c 20 31 29 3b 0a 20 20 ption.=.substr($argv[$i],.1);...
3a60 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 ....}.else.{.........throw.new.g
3a80 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63 6f 67 tUnknownOptionException('Unrecog
3aa0 6e 69 73 65 64 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 61 nised.command.line.option.'...$a
3ac0 72 67 76 5b 24 69 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 69 6e rgv[$i]);.......}........if.(!in
3ae0 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 _array($option,.array_merge($thi
3b00 73 2d 3e 73 68 6f 72 74 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 4f 70 74 s->shortOptions,.$this->shortOpt
3b20 69 6f 6e 73 57 69 74 68 41 72 67 73 29 29 29 0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 ionsWithArgs))).......{.........
3b40 74 68 72 6f 77 20 6e 65 77 20 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 throw.new.gtUnknownOptionExcepti
3b60 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b 24 69 5d on('Unknown.option.'...$argv[$i]
3b80 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 );.......}........if.(in_array($
3ba0 6f 70 74 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 4f 70 74 69 6f 6e 73 29 29 20 7b 0a option,.$this->shortOptions)).{.
3bc0 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 20 ........$this->options[$option].
3be0 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 20 =.true;.........continue;.......
3c00 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4f 70 74 69 }........if.(!$this->isValidOpti
3c20 6f 6e 41 72 67 28 24 61 72 67 76 2c 20 24 69 20 2b 20 31 29 29 0a 20 20 20 20 20 20 7b 0a 20 20 onArg($argv,.$i.+.1)).......{...
3c40 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e ......throw.new.gtMissingArgumen
3c60 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 66 6f 72 tException('Missing.argument.for
3c80 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b 24 .command.line.option.'...$argv[$
3ca0 69 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 24 69 2b 2b 3b 0a 20 20 20 20 20 20 i]);.......}........$i++;.......
3cc0 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 20 3d 20 24 61 72 67 76 5b $this->options[$option].=.$argv[
3ce0 24 69 5d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 2f 2a 2a 0a 20 20 20 2a 0a 20 20 20 2a $i];.....}...}...../**....*....*
3d00 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 6f /...public.function.getOption($o
3d20 70 74 69 6f 6e 29 0a 20 20 7b 0a 20 20 20 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d ption)...{.....if.(!isset($this-
3d40 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 >options[$option])).{.......retu
3d60 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 rn.false;.....}.....return.$this
3d80 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a ->options[$option];...}...../**.
3da0 20 20 20 2a 20 43 68 65 63 6b 20 77 68 65 74 68 65 72 20 61 6e 20 6f 70 74 69 6f 6e 20 65 78 69 ...*.Check.whether.an.option.exi
3dc0 73 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f sts....*/...public.function.hasO
3de0 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a 20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 73 ption($option)...{.....return.is
3e00 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 3b 0a 20 20 set($this->options[$option]);...
3e20 7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 }...}.?><?php../**..*.Check.that
3e40 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 .the.function.name.is.valid..*..
3e60 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e */.class.gtIsValidFunction.exten
3e80 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 ds.gtPreCondition.{....public.fu
3ea0 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c nction.check(.$clo).{.....if($cl
3ec0 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 20 29 20 7b 0a 20 20 20 20 20 20 24 66 75 6e o->hasOption('f').).{.......$fun
3ee0 63 74 69 6f 6e 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 27 29 3b 0a 20 20 ction.=.$clo->getOption('f');...
3f00 20 20 20 20 24 66 75 6e 63 74 69 6f 6e 73 20 3d 20 67 65 74 5f 64 65 66 69 6e 65 64 5f 66 75 6e ....$functions.=.get_defined_fun
3f20 63 74 69 6f 6e 73 28 29 3b 0a 20 20 20 20 20 20 69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 66 ctions();.......if(.in_array(.$f
3f40 75 6e 63 74 69 6f 6e 2c 20 24 66 75 6e 63 74 69 6f 6e 73 5b 27 69 6e 74 65 72 6e 61 6c 27 5d 20 unction,.$functions['internal'].
3f60 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 ).).{.........return.true;......
3f80 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 .}.......return.false;.....}....
3fa0 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 .return.true;...}....public.func
3fc0 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 tion.getMessage().{.....return.g
3fe0 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b 6e 6f 77 6e 46 75 6e 63 74 69 6f 6e 27 29 3b 0a 20 tText::get('unknownFunction');..
4000 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 .}.}.?><?php../**..*.Check.that.
4020 62 7c 63 7c 76 20 69 73 20 73 70 65 63 69 66 69 65 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 b|c|v.is.specified..*..*/.class.
4040 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70 65 20 65 78 74 65 6e 64 73 20 67 74 gtIsSpecifiedTestType.extends.gt
4060 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 PreCondition.{......public.funct
4080 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e ion.check(.$clo).{.....if($clo->
40a0 68 61 73 4f 70 74 69 6f 6e 28 27 62 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f hasOption('b').||.$clo->hasOptio
40c0 6e 28 27 65 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 76 27 29 20 29 n('e').||.$clo->hasOption('v').)
40e0 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 .{..............return.true;....
4100 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a 20 20 ...}.....return.false;...}......
4120 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 public.function.getMessage().{..
4140 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 74 65 73 74 54 79 70 65 4e ...return.gtText::get('testTypeN
4160 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a otSpecified');...}.}.?><?php../*
4180 2a 0a 20 2a 20 49 66 20 75 73 65 20 68 61 73 20 72 65 71 75 65 73 74 65 64 20 61 20 63 6c 61 73 *..*.If.use.has.requested.a.clas
41a0 73 20 63 68 65 63 6b 20 74 68 61 74 20 6d 65 74 68 6f 64 20 69 73 20 73 70 65 63 69 66 69 65 64 s.check.that.method.is.specified
41c0 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 ..*..*/.class.gtIfClassHasMethod
41e0 20 65 78 74 65 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 70 .extends.gtPreCondition.{......p
4200 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 ublic.function.check(.$clo).{...
4220 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 ..if($clo->hasOption('c')).{....
4240 20 20 20 69 66 28 21 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 6d 27 29 29 20 7b 0a 20 ...if(!$clo->hasOption('m')).{..
4260 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 .......return.false;.......}....
4280 20 20 20 72 65 74 75 72 6e 20 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 ...return..true;.....}.....retur
42a0 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e n.true;...}......public.function
42c0 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 .getMessage().{.....return.gtTex
42e0 74 3a 3a 67 65 74 28 27 6d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 20 t::get('methodNotSpecified');...
4300 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 }..}.?><?php../**..*.Check.that.
4320 65 69 74 68 65 72 20 61 20 6d 65 74 68 6f 64 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 73 either.a.method.or.a.function.is
4340 20 73 70 65 63 69 66 69 65 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 53 70 65 63 .specified..*..*/.class.gtIsSpec
4360 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 ifiedFunctionOrMethod.extends.gt
4380 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 PreCondition.{......public.funct
43a0 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e ion.check(.$clo).{.....if($clo->
43c0 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 20 7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f hasOption('f').||.$clo->hasOptio
43e0 6e 28 27 6d 27 29 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 n('m')).{..............return.tr
4400 75 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 ue;.......}.....return.false;...
4420 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 }......public.function.getMessag
4440 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 66 75 e().{.....return.gtText::get('fu
4460 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 20 nctionOrMethodNotSpecified');...
4480 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 74 }.}.?><?php../**..*.Check.that.t
44a0 65 68 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f 0a 63 eh.method.name.is.valid..*..*/.c
44c0 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 50 lass.gtIsValidMethod.extends.gtP
44e0 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 reCondition.{...public.function.
4500 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f check(.$clo).{.....if($clo->hasO
4520 70 74 69 6f 6e 28 27 6d 27 29 20 29 20 7b 0a 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 ption('m').).{.......$className.
4540 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20 24 63 =.$clo->getOption('c');.......$c
4560 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 28 24 63 6c 61 73 lass.=.new.ReflectionClass($clas
4580 73 4e 61 6d 65 29 3b 0a 20 20 20 20 20 20 24 6d 65 74 68 6f 64 73 20 3d 20 24 63 6c 61 73 73 2d sName);.......$methods.=.$class-
45a0 3e 67 65 74 4d 65 74 68 6f 64 73 28 29 3b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 24 6d 65 >getMethods();.......foreach($me
45c0 74 68 6f 64 73 20 61 73 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 24 thods.as.$method).{.........if($
45e0 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 27 29 20 3d 3d 20 24 6d 65 74 68 6f 64 2d 3e clo->getOption('m').==.$method->
4600 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 getName()).{...........return.tr
4620 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 ue;.........}.......}.......retu
4640 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b rn.false;.....}.....return.true;
4660 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 ...}....public.function.getMessa
4680 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 75 ge().{.....return.gtText::get('u
46a0 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 27 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f nknownMethod');...}.}.?><?php../
46c0 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 20 **..*.Check.that.the.class.name.
46e0 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 43 is.valid..*..*/.class.gtIsValidC
4700 6c 61 73 73 20 65 78 74 65 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a 20 lass.extends.gtPreCondition.{...
4720 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a .public.function.check(.$clo).{.
4740 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 20 29 20 7b 0a ....if($clo->hasOption('c').).{.
4760 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 ......$className.=.$clo->getOpti
4780 6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20 69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 63 6c on('c');.......if(.in_array(.$cl
47a0 61 73 73 4e 61 6d 65 2c 20 67 65 74 5f 64 65 63 6c 61 72 65 64 5f 63 6c 61 73 73 65 73 28 29 20 assName,.get_declared_classes().
47c0 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 20 ).).{.........return.true;......
47e0 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 20 .}.......return.false;.....}....
4800 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 .return.true;...}....public.func
4820 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 67 tion.getMessage().{.....return.g
4840 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b 6e 6f 77 6e 43 6c 61 73 73 27 29 3b 0a 20 20 7d 0a tText::get('unknownClass');...}.
4860 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 4c 69 73 74 20 6f 66 20 70 72 65 63 6f 6e }.?><?php../**..*.List.of.precon
4880 64 69 74 69 6f 6e 73 2e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 50 72 65 43 6f 6e 64 69 ditions...*..*/.class.gtPreCondi
48a0 74 69 6f 6e 4c 69 73 74 20 7b 0a 20 20 0a 20 20 70 72 69 76 61 74 65 20 24 70 72 65 43 6f 6e 64 tionList.{......private.$preCond
48c0 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 69 itions.=.array(.......'gtIsSpeci
48e0 66 69 65 64 54 65 73 74 54 79 70 65 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 69 66 fiedTestType',.......'gtIsSpecif
4900 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 27 2c 20 20 0a 20 20 20 20 20 20 27 67 iedFunctionOrMethod',.........'g
4920 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 56 tIfClassHasMethod',.......'gtIsV
4940 61 6c 69 64 43 6c 61 73 73 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 46 75 6e 63 alidClass',.......'gtIsValidFunc
4960 74 69 6f 6e 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 27 2c 0a tion',.......'gtIsValidMethod',.
4980 20 20 29 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 20 61 6e 20 69 6e 73 74 ..);...../**....*.Create.an.inst
49a0 61 6e 63 65 20 6f 66 20 65 61 63 68 20 70 72 65 2d 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 72 ance.of.each.pre-condition.and.r
49c0 75 6e 20 74 68 65 69 72 20 63 68 65 63 6b 20 6d 65 74 68 6f 64 73 0a 20 20 20 2a 0a 20 20 20 2a un.their.check.methods....*....*
49e0 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 63 6c 6f 29 20 /...public.function.check($clo).
4a00 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 43 6f 6e 64 69 74 69 {.....foreach.($this->preConditi
4a20 6f 6e 73 20 61 73 20 24 70 72 65 43 6f 6e 29 20 7b 0a 20 20 20 20 20 20 24 63 68 65 63 6b 54 68 ons.as.$preCon).{.......$checkTh
4a40 69 73 20 3d 20 6e 65 77 20 24 70 72 65 43 6f 6e 3b 0a 20 20 20 20 20 20 69 66 28 21 24 63 68 65 is.=.new.$preCon;.......if(!$che
4a60 63 6b 54 68 69 73 2d 3e 63 68 65 63 6b 28 24 63 6c 6f 29 29 20 7b 0a 20 20 20 20 20 20 20 20 65 ckThis->check($clo)).{.........e
4a80 63 68 6f 20 24 63 68 65 63 6b 54 68 69 73 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 20 cho.$checkThis->getMessage();...
4aa0 20 20 20 20 20 20 64 69 65 28 67 74 54 65 78 74 3a 3a 67 65 74 28 27 68 65 6c 70 27 29 29 3b 0a ......die(gtText::get('help'));.
4ac0 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 63 6c 61 73 ......}.....}...}.}.?><?php.clas
4ae0 73 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 7b 0a 0a 20 20 70 72 69 76 61 74 s.gtOptionalSections.{....privat
4b00 65 20 24 6f 70 74 53 65 63 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 20 20 20 20 27 73 6b 69 e.$optSections.=.array(.....'ski
4b20 70 69 66 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 20 27 69 6e 69 27 20 20 20 20 3d 3e 20 66 pif'.=>.false,.....'ini'....=>.f
4b40 61 6c 73 65 2c 0a 20 20 20 20 27 63 6c 65 61 6e 27 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 20 alse,.....'clean'..=>.false,....
4b60 20 27 64 6f 6e 65 27 20 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 69 76 .'done'...=>.false,...);....priv
4b80 61 74 65 20 24 73 6b 69 70 69 66 4b 65 79 20 3d 20 27 27 3b 0a 20 20 70 72 69 76 61 74 65 20 24 ate.$skipifKey.=.'';...private.$
4ba0 73 6b 69 70 69 66 45 78 74 20 3d 20 27 27 3b 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 skipifExt.=.'';.....public.funct
4bc0 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f ion.setOptions($commandLineOptio
4be0 6e 73 29 20 7b 0a 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 ns).{.....if($commandLineOptions
4c00 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27 29 29 20 7b 0a 20 20 20 20 20 20 24 6f 70 74 69 6f ->hasOption('s')).{.......$optio
4c20 6e 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 ns.=.explode(':',.$commandLineOp
4c40 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 27 29 29 3b 0a 0a 20 20 20 20 20 20 66 tions->getOption('s'));........f
4c60 6f 72 65 61 63 68 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 0a 20 oreach($options.as.$option).{...
4c80 20 20 20 20 20 20 20 69 66 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6f 70 74 69 .......if(array_key_exists($opti
4ca0 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 20 29 29 20 7b 0a 20 20 20 20 on,.$this->optSections.)).{.....
4cc0 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e ......$this->optSections[$option
4ce0 5d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 ].=.true;.........}.else.{......
4d00 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 .....throw.new.gtUnknownSectionE
4d20 78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63 6f 67 6e 69 73 65 64 20 6f 70 74 69 6f 6e 61 6c 20 xception('Unrecognised.optional.
4d40 73 65 63 74 69 6f 6e 27 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 20 section');.........}.......}....
4d60 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f ....if($commandLineOptions->hasO
4d80 70 74 69 6f 6e 28 27 6b 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b 69 ption('k')).{.........$this->ski
4da0 70 69 66 4b 65 79 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 65 pifKey.=.$commandLineOptions->ge
4dc0 74 4f 70 74 69 6f 6e 28 27 6b 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 20 tOption('k');.......}...........
4de0 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 ...if($commandLineOptions->hasOp
4e00 74 69 6f 6e 28 27 78 27 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b 69 70 tion('x')).{.........$this->skip
4e20 69 66 45 78 74 20 3d 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 65 74 ifExt.=.$commandLineOptions->get
4e40 4f 70 74 69 6f 6e 28 27 78 27 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 20 20 Option('x');.......}............
4e60 7d 0a 20 20 7d 0a 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 }...}......public.function.getOp
4e80 74 69 6f 6e 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 tions().{.....return.$this->optS
4ea0 65 63 74 69 6f 6e 73 3b 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ections;...}.....public.function
4ec0 20 67 65 74 53 6b 69 70 69 66 4b 65 79 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 .getSkipifKey().{.....return.$th
4ee0 69 73 2d 3e 73 6b 69 70 69 66 4b 65 79 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 is->skipifKey;...}......public.f
4f00 75 6e 63 74 69 6f 6e 20 67 65 74 53 6b 69 70 69 66 45 78 74 28 29 20 7b 0a 20 20 20 20 72 65 74 unction.getSkipifExt().{.....ret
4f20 75 72 6e 20 24 74 68 69 73 2d 3e 73 6b 69 70 69 66 45 78 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 urn.$this->skipifExt;...}....pub
4f40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 6b 69 70 69 66 28 29 20 7b 0a 20 20 20 20 72 lic.function.hasSkipif().{.....r
4f60 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 73 6b 69 70 69 66 eturn.$this->optSections['skipif
4f80 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 6b '];...}....public.function.hasSk
4fa0 69 70 69 66 4b 65 79 28 29 20 7b 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 73 6b 69 70 69 66 ipifKey().{.....if($this->skipif
4fc0 4b 65 79 20 21 3d 20 27 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a Key.!=.'').{.......return.true;.
4fe0 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a 20 ....}.....return.false;...}.....
5000 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 6b 69 70 69 66 45 78 74 28 29 20 .public.function.hasSkipifExt().
5020 7b 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 73 6b 69 70 69 66 45 78 74 20 21 3d 20 27 27 29 {.....if($this->skipifExt.!=.'')
5040 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 20 .{.......return.true;.....}.....
5060 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 return.false;...}...public.funct
5080 69 6f 6e 20 68 61 73 49 6e 69 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.hasIni().{.....return.$this-
50a0 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 69 6e 69 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c >optSections['ini'];...}....publ
50c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6c 65 61 6e 28 29 20 7b 0a 20 20 20 20 72 65 74 ic.function.hasClean().{.....ret
50e0 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 63 6c 65 61 6e 27 5d 3b urn.$this->optSections['clean'];
5100 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 44 6f 6e ...}......public.function.hasDon
5120 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 69 e().{.....return.$this->optSecti
5140 6f 6e 73 5b 27 64 6f 6e 65 27 5d 3b 0a 20 20 7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 20 ons['done'];...}...}.?><?php....
5160 63 6c 61 73 73 20 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e class.gtMissingArgumentException
5180 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 .extends.RuntimeException...{...
51a0 7d 0a 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a 63 6c 61 73 73 20 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 }..?>.<?php..class.gtUnknownSect
51c0 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 ionException.extends.RuntimeExce
51e0 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 20 63 6c 61 73 73 20 67 ption...{...}.?><?php....class.g
5200 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 tUnknownOptionException.extends.
5220 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 7d 0a 0a 3f 3e 0a 3c 3f 70 RuntimeException...{...}..?>.<?p
5240 68 70 0a 0a 20 63 6c 61 73 73 20 67 74 4d 69 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 70 hp...class.gtMissingOptionsExcep
5260 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 20 tion.extends.RuntimeException...
5280 7b 0a 20 20 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 70 61 72 65 6e 74 20 63 6c {...}..?><?php../**..*.parent.cl
52a0 61 73 73 20 66 6f 72 20 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a 61 62 73 ass.for.preconditions..*..*/.abs
52c0 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a tract.class.gtPreCondition.{....
52e0 20 20 61 62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b ..abstract.public.function.check
5300 28 24 63 6c 6f 29 3b 20 0a 20 20 0a 20 20 61 62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 75 ($clo);.......abstract.public.fu
5320 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 3b 20 0a 20 20 0a 7d 0a 3f 3e 3c 3f 70 nction.getMessage();.....}.?><?p
5340 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 57 72 69 74 65 73 20 61 20 73 69 6e 67 6c 65 20 74 65 73 74 20 hp../**..*.Writes.a.single.test.
5360 63 61 73 65 20 74 6f 20 61 20 66 69 6c 65 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 54 65 case.to.a.file..*..*/.class.gtTe
5380 73 74 43 61 73 65 57 72 69 74 65 72 20 7b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 stCaseWriter.{......public.stati
53a0 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 73 74 72 69 6e 67 2c c.function.write($name,.$string,
53c0 20 24 74 79 70 65 2c 20 24 63 6f 75 6e 74 20 3d 20 30 29 20 7b 0a 20 20 20 20 69 66 20 28 24 74 .$type,.$count.=.0).{.....if.($t
53e0 79 70 65 20 20 3d 3d 20 27 62 27 29 20 7b 0a 20 20 20 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 ype..==.'b').{.....$fileName.=.$
5400 6e 61 6d 65 2e 22 5f 62 61 73 69 63 2e 70 68 70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 name."_basic.phpt";.....}.......
5420 20 20 20 69 66 20 28 24 74 79 70 65 20 20 3d 3d 20 27 65 27 29 20 7b 0a 20 20 20 20 20 24 66 69 ...if.($type..==.'e').{......$fi
5440 6c 65 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 2e 22 5f 65 72 72 6f 72 2e 70 68 70 74 22 3b 0a 20 20 leName.=.$name."_error.phpt";...
5460 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 69 66 20 28 24 74 79 70 65 20 20 3d 3d 20 27 76 27 29 20 ..}..........if.($type..==.'v').
5480 7b 0a 20 20 20 20 20 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 2e 22 5f 76 61 72 69 {.......$fileName.=.$name."_vari
54a0 61 74 69 6f 6e 22 2e 24 63 6f 75 6e 74 2e 22 2e 70 68 70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 20 ation".$count.".phpt";.....}....
54c0 20 0a 20 20 20 20 24 66 68 20 3d 20 66 6f 70 65 6e 28 24 66 69 6c 65 4e 61 6d 65 2c 20 27 77 27 ......$fh.=.fopen($fileName,.'w'
54e0 29 3b 0a 20 20 20 20 66 77 72 69 74 65 20 28 24 66 68 2c 20 24 73 74 72 69 6e 67 29 3b 0a 20 20 );.....fwrite.($fh,.$string);...
5500 20 20 66 63 6c 6f 73 65 28 24 66 68 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a ..fclose($fh);...}.}.?><?php../*
5520 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 6d 65 74 68 6f 64 20 75 6e 64 65 72 20 74 65 73 74 *..*.Class.for.method.under.test
5540 20 28 73 65 65 20 67 74 46 75 6e 63 74 69 6f 6e 20 66 6f 72 20 6e 6f 6e 2d 4f 4f 20 74 65 73 74 .(see.gtFunction.for.non-OO.test
5560 73 29 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 4d 65 74 68 6f 64 20 20 65 78 74 65 6e 64 73 20 67 s)..*/.class.gtMethod..extends.g
5580 74 54 65 73 74 53 75 62 6a 65 63 74 20 7b 0a 0a 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 tTestSubject.{....private.$class
55a0 4e 61 6d 65 3b 0a 20 20 70 72 69 76 61 74 65 20 24 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 70 Name;...private.$methodName;...p
55c0 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 rivate.$constructorArgumentNames
55e0 3b 0a 20 20 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 ;...private.$constructorArgument
5600 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 6f List.=.'';...private.$constructo
5620 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 0a 20 20 rInitialisationStatements;......
5640 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 67 74 4d 65 74 68 6f 64 20 6f 62 6a 65 /**....*.Construct.gtMethod.obje
5660 63 74 20 66 72 6f 6d 20 74 68 65 20 63 6c 61 73 73 20 61 6e 64 20 6d 65 74 68 6f 64 20 6e 61 6d ct.from.the.class.and.method.nam
5680 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 es....*....*.@param.string.$clas
56a0 73 4e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6d 65 74 68 6f 64 sName....*.@param.string.$method
56c0 4e 61 6d 65 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 Name....*/...public.function.__c
56e0 6f 6e 73 74 72 75 63 74 28 24 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 onstruct($className,.$methodName
5700 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 73 ).{.....$this->className.=.$clas
5720 73 4e 61 6d 65 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 24 sName;.....$this->methodName.=.$
5740 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 methodName;...}...../**....*.Set
5760 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 63 6c 61 73 73 20 63 6f 6e 73 74 72 75 63 .the.names.of.the.class.construc
5780 74 6f 72 20 61 72 67 75 6d 65 6e 74 73 2e 20 54 61 6b 65 20 6f 6e 6c 79 20 6d 61 6e 64 61 74 6f tor.arguments..Take.only.mandato
57a0 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 ry.argument.names.....*....*/...
57c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 public.function.setConstructorAr
57e0 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 24 72 65 66 6c 65 63 74 69 6f 6e 43 gumentNames().{.....$reflectionC
5800 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 28 24 74 68 69 73 lass.=.new.ReflectionClass($this
5820 2d 3e 63 6c 61 73 73 4e 61 6d 65 29 3b 0a 20 20 20 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 20 3d ->className);.....$constructor.=
5840 20 24 72 65 66 6c 65 63 74 69 6f 6e 43 6c 61 73 73 2d 3e 67 65 74 43 6f 6e 73 74 72 75 63 74 6f .$reflectionClass->getConstructo
5860 72 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 63 6f 6e 73 74 72 75 63 74 6f 72 2d 3e 67 r();.....foreach($constructor->g
5880 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 61 6d 29 20 etParameters().as.$i.=>.$param).
58a0 7b 0a 20 20 20 20 20 20 2f 2f 69 66 28 21 24 70 61 72 61 6d 2d 3e 69 73 4f 70 74 69 6f 6e 61 6c {.......//if(!$param->isOptional
58c0 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 ()).{.........$this->constructor
58e0 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 6d ArgumentNames[].=.$param->getNam
5900 65 28 29 3b 0a 20 20 20 20 20 20 2f 2f 7d 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 0a 20 20 2f e();.......//}.....}...}......./
5920 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 6d 61 6e **....*.Set.the.names.of.the.man
5940 64 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 6f datory.and.optional.arguments.to
5960 20 74 68 65 20 6d 65 74 68 6f 64 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 .the.method....*....*/...public.
5980 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 0a 20 function.setArgumentNames().{...
59a0 20 20 20 24 6d 65 74 68 6f 64 43 6c 61 73 73 20 20 3d 20 6e 65 77 20 72 65 66 6c 65 63 74 69 6f ...$methodClass..=.new.reflectio
59c0 6e 4d 65 74 68 6f 64 28 24 74 68 69 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 2c 20 24 74 68 69 73 2d nMethod($this->className,.$this-
59e0 3e 6d 65 74 68 6f 64 4e 61 6d 65 29 3b 0a 20 20 20 20 24 70 61 72 61 6d 65 74 65 72 73 20 3d 20 >methodName);.....$parameters.=.
5a00 24 6d 65 74 68 6f 64 43 6c 61 73 73 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0a 0a $methodClass->getParameters();..
5a20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d 65 74 68 6f 64 43 6c 61 73 73 2d 3e 67 65 74 50 61 ....foreach.($methodClass->getPa
5a40 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 20 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 20 rameters().as.$i.=>.$param).{...
5a60 20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e 69 73 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a 20 ....if($param->isOptional()).{..
5a80 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 .......$this->optionalArgumentNa
5aa0 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 mes[].=.$param->getName();......
5ac0 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f .}.else.{.........$this->mandato
5ae0 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e ryArgumentNames[].=.$param->getN
5b00 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a ame();.......}......}...}...../*
5b20 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 74 72 *....*.Return.the.list.of.constr
5b40 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 uctor.argument.names....*....*.@
5b60 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 return.array....*/...public.func
5b80 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 tion.getConstructorArgumentNames
5ba0 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 ().{.....return.$this->construct
5bc0 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a orArgumentNames;...}..../**....*
5be0 20 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 0a 20 .Return.the.name.of.the.method..
5c00 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 20 ..*....*.@return.string....*/...
5c20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 public.function.getName().{.....
5c40 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a return.$this->methodName;...}...
5c60 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 ../**....*.Return.the.name.of.th
5c80 65 20 63 6c 61 73 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 e.class....*....*.@return.string
5ca0 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 73 ....*/...public.function.getClas
5cc0 73 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 sName().{.....return.$this->clas
5ce0 73 4e 61 6d 65 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 sName;...}....../**....*.Set.the
5d00 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 .list.of.arguments.to.be.passed.
5d20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 75 63 74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 to.the.constructor....*....*/...
5d40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 public.function.setConstructorAr
5d60 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 gumentList().{.....if(count.($th
5d80 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 is->constructorArgumentNames).>.
5da0 30 29 20 7b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 0).{..............for(.$i.=.0;.$
5dc0 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 i.<.count(.$this->constructorArg
5de0 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 umentNames.);.$i++).{.........$t
5e00 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 2e 3d 20 his->constructorArgumentList..=.
5e20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e "\$".$this->constructorArgumentN
5e40 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 24 74 68 ames[$i].",.";.......}.......$th
5e60 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 75 is->constructorArgumentList.=.su
5e80 62 73 74 72 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c bstr($this->constructorArgumentL
5ea0 69 73 74 2c 20 30 2c 20 2d 32 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 ist,.0,.-2);.....}...}...../**..
5ec0 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 74 68 65 20 61 72 67 75 6d ..*.Return.the.list.of.the.argum
5ee0 65 6e 74 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 75 ents.to.be.passed.to.the.constru
5f00 63 74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 ctor....*....*.@return.string...
5f20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 .*/...public.function.getConstru
5f40 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 ctorArgumentList().{.....return.
5f60 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a $this->constructorArgumentList;.
5f80 20 20 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 75 70 20 74 68 65 20 73 6f ..}......./**....*.Set.up.the.so
5fa0 75 72 63 65 20 73 74 61 74 65 6d 65 6e 74 73 20 74 68 61 74 20 69 6e 69 74 69 61 6c 69 73 65 20 urce.statements.that.initialise.
5fc0 63 6f 6e 73 74 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 73 3b 0a 20 20 20 2a 0a 20 20 20 2a constructor.arguments;....*....*
5fe0 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 74 /...public.function.setConstruct
6000 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e orInitStatements().{.....if(coun
6020 74 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d t.($this->constructorArgumentNam
6040 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 2d es).>.0).{.......foreach(.$this-
6060 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e 61 >constructorArgumentNames.as.$na
6080 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 me).{.........$this->constructor
60a0 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c 24 InitialisationStatements[].=."\$
60c0 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 ".$name.".=.";.......}.....}....
60e0 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e 73 }......./**....*.Return.the.cons
6100 74 72 75 63 74 6f 72 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 tructor.initialisation.statement
6120 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a s....*....*.@return.array....*/.
6140 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 ..public.function.getConstructor
6160 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 InitStatements().{.....return.$t
6180 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 his->constructorInitialisationSt
61a0 61 74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d 0a 3f 3e 20 2a 0a 20 2a 2f 69 66 20 28 73 75 62 73 atements;...}.}.?>.*..*/if.(subs
61c0 74 72 28 50 48 50 5f 4f 53 2c 20 30 2c 20 33 29 20 3d 3d 20 27 57 49 4e 27 29 20 64 69 65 28 22 tr(PHP_OS,.0,.3).==.'WIN').die("
61e0 73 6b 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20 6e 6f 74 20 66 6f 72 20 57 69 6e 64 6f 77 skip.this.test.is.not.for.Window
6200 73 20 70 6c 61 74 66 6f 72 6d 73 22 29 3b 0a 2f 2a 2a 0a 20 2a 24 76 61 72 69 61 74 69 6f 6e 5f s.platforms");./**..*$variation_
6220 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 66 6c 6f 61 74 20 31 30 2e 35 27 20 3d 3e array.=.array(...'float.10.5'.=>
6240 20 31 30 2e 35 2c 0a 20 20 27 66 6c 6f 61 74 20 2d 31 30 2e 35 27 20 3d 3e 20 2d 31 30 2e 35 2c .10.5,...'float.-10.5'.=>.-10.5,
6260 0a 20 20 27 66 6c 6f 61 74 20 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e 20 31 ...'float.12.3456789000e10'.=>.1
6280 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 30 2c 0a 20 20 27 66 6c 6f 61 74 20 2d 31 32 2e 33 34 2.3456789000e10,...'float.-12.34
62a0 35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e 20 2d 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 56789000e10'.=>.-12.3456789000e1
62c0 30 2c 0a 20 20 27 66 6c 6f 61 74 20 2e 35 27 20 3d 3e 20 2e 35 2c 0a 20 20 29 3b 24 68 65 72 65 0,...'float..5'.=>..5,...);$here
62e0 64 6f 63 20 3d 20 3c 3c 3c 45 4f 54 0a 68 65 6c 6c 6f 20 77 6f 72 6c 64 0a 45 4f 54 3b 0a 0a 24 doc.=.<<<EOT.hello.world.EOT;..$
6300 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 73 74 72 69 variation_array.=.array(...'stri
6320 6e 67 20 44 51 27 20 3d 3e 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 27 73 74 72 69 6e 67 20 53 51 ng.DQ'.=>."string",...'string.SQ
6340 27 20 3d 3e 20 27 73 74 72 69 6e 67 27 2c 0a 20 20 27 6d 69 78 65 64 20 63 61 73 65 20 73 74 72 '.=>.'string',...'mixed.case.str
6360 69 6e 67 27 20 3d 3e 20 22 73 54 72 49 6e 47 22 2c 0a 20 20 27 68 65 72 65 64 6f 63 27 20 3d 3e ing'.=>."sTrInG",...'heredoc'.=>
6380 20 24 68 65 72 65 64 6f 63 2c 0a 20 20 29 3b 66 6f 72 65 61 63 68 20 28 20 24 76 61 72 69 61 74 .$heredoc,...);foreach.(.$variat
63a0 69 6f 6e 5f 61 72 72 61 79 20 61 73 20 24 76 61 72 20 29 20 7b 69 66 20 28 73 75 62 73 74 72 28 ion_array.as.$var.).{if.(substr(
63c0 50 48 50 5f 4f 53 2c 20 30 2c 20 33 29 20 21 3d 20 27 57 49 4e 27 29 20 64 69 65 28 22 73 6b 69 PHP_OS,.0,.3).!=.'WIN').die("ski
63e0 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20 66 6f 72 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 66 p.this.test.is.for.Windows.platf
6400 6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 24 69 6e 64 65 78 5f 61 72 72 61 79 20 3d 20 61 72 72 61 orms.only");.$index_array.=.arra
6420 79 28 31 2c 20 32 2c 20 33 29 3b 0a 24 61 73 73 6f 63 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 y(1,.2,.3);.$assoc_array.=.array
6440 28 31 20 3d 3e 20 27 6f 6e 65 27 2c 20 32 20 3d 3e 20 27 74 77 6f 27 29 3b 0a 0a 24 76 61 72 69 (1.=>.'one',.2.=>.'two');..$vari
6460 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 65 6d 70 74 79 20 61 72 ation_array.=.array(...'empty.ar
6480 72 61 79 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 20 20 27 69 6e 74 20 69 6e 64 65 78 65 64 20 ray'.=>.array(),...'int.indexed.
64a0 61 72 72 61 79 27 20 3d 3e 20 24 69 6e 64 65 78 5f 61 72 72 61 79 2c 0a 20 20 27 61 73 73 6f 63 array'.=>.$index_array,...'assoc
64c0 69 61 74 69 76 65 20 61 72 72 61 79 27 20 3d 3e 20 24 61 73 73 6f 63 5f 61 72 72 61 79 2c 0a 20 iative.array'.=>.$assoc_array,..
64e0 20 27 6e 65 73 74 65 64 20 61 72 72 61 79 73 27 20 3d 3e 20 61 72 72 61 79 28 27 66 6f 6f 27 2c .'nested.arrays'.=>.array('foo',
6500 20 24 69 6e 64 65 78 5f 61 72 72 61 79 2c 20 24 61 73 73 6f 63 5f 61 72 72 61 79 29 2c 0a 20 20 .$index_array,.$assoc_array),...
6520 29 3b 7d 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 );}$variation_array.=.array(...'
6540 6c 6f 77 65 72 63 61 73 65 20 74 72 75 65 27 20 3d 3e 20 74 72 75 65 2c 0a 20 20 27 6c 6f 77 65 lowercase.true'.=>.true,...'lowe
6560 72 63 61 73 65 20 66 61 6c 73 65 27 20 3d 3e 66 61 6c 73 65 2c 0a 20 20 27 75 70 70 65 72 63 61 rcase.false'.=>false,...'upperca
6580 73 65 20 54 52 55 45 27 20 3d 3e 54 52 55 45 2c 0a 20 20 27 75 70 70 65 72 63 61 73 65 20 46 41 se.TRUE'.=>TRUE,...'uppercase.FA
65a0 4c 53 45 27 20 3d 3e 46 41 4c 53 45 2c 0a 20 20 29 3b 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 49 LSE'.=>FALSE,...);if.(PHP_INT_SI
65c0 5a 45 20 21 3d 20 38 29 20 64 69 65 28 22 73 6b 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20 ZE.!=.8).die("skip.this.test.is.
65e0 66 6f 72 20 36 34 62 69 74 20 70 6c 61 74 66 6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 69 66 20 28 for.64bit.platforms.only");.if.(
6600 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 21 3d 20 34 29 20 64 69 65 28 22 73 6b 69 70 20 74 68 69 PHP_INT_SIZE.!=.4).die("skip.thi
6620 73 20 74 65 73 74 20 69 73 20 66 6f 72 20 33 32 62 69 74 20 70 6c 61 74 66 6f 72 6d 73 20 6f 6e s.test.is.for.32bit.platforms.on
6640 6c 79 22 29 3b 0a 24 75 6e 73 65 74 5f 76 61 72 20 3d 20 31 30 3b 0a 75 6e 73 65 74 28 24 75 6e ly");.$unset_var.=.10;.unset($un
6660 73 65 74 5f 76 61 72 29 3b 0a 0a 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 72 set_var);..$variation_array.=.ar
6680 72 61 79 28 0a 20 20 27 75 6e 73 65 74 20 76 61 72 27 20 3d 3e 20 40 24 75 6e 73 65 74 5f 76 61 ray(...'unset.var'.=>.@$unset_va
66a0 72 2c 0a 20 20 27 75 6e 64 65 66 69 6e 65 64 20 76 61 72 27 20 3d 3e 20 40 24 75 6e 64 65 66 69 r,...'undefined.var'.=>.@$undefi
66c0 6e 65 64 5f 76 61 72 2c 09 0a 20 20 27 65 6d 70 74 79 20 73 74 72 69 6e 67 20 44 51 27 20 3d 3e ned_var,....'empty.string.DQ'.=>
66e0 20 22 22 2c 0a 20 20 27 65 6d 70 74 79 20 73 74 72 69 6e 67 20 53 51 27 20 3d 3e 20 27 27 2c 0a ."",...'empty.string.SQ'.=>.'',.
6700 20 20 27 75 70 70 65 72 63 61 73 65 20 4e 55 4c 4c 27 20 3d 3e 20 4e 55 4c 4c 2c 0a 20 20 27 6c ..'uppercase.NULL'.=>.NULL,...'l
6720 6f 77 65 72 63 61 73 65 20 6e 75 6c 6c 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 20 20 29 3b 66 75 6e 63 owercase.null'.=>.null,...);func
6740 74 69 6f 6e 20 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 24 65 72 72 5f 6e 6f 2c tion.test_error_handler($err_no,
6760 20 24 65 72 72 5f 6d 73 67 2c 20 24 66 69 6c 65 6e 61 6d 65 2c 20 24 6c 69 6e 65 6e 75 6d 2c 20 .$err_msg,.$filename,.$linenum,.
6780 24 76 61 72 73 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 65 72 72 6f 72 5f 72 65 70 6f 72 $vars).{.........if.(error_repor
67a0 74 69 6e 67 28 29 20 21 3d 20 30 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f ting().!=.0).{................./
67c0 2f 20 72 65 70 6f 72 74 20 6e 6f 6e 2d 73 69 6c 65 6e 63 65 64 20 65 72 72 6f 72 73 0a 20 20 20 /.report.non-silenced.errors....
67e0 20 20 20 20 20 20 20 20 20 20 20 20 20 65 63 68 6f 20 22 45 72 72 6f 72 3a 20 24 65 72 72 5f 6e .............echo."Error:.$err_n
6800 6f 20 2d 20 24 65 72 72 5f 6d 73 67 2c 20 24 66 69 6c 65 6e 61 6d 65 28 24 6c 69 6e 65 6e 75 6d o.-.$err_msg,.$filename($linenum
6820 29 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 7d 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e 64 )\n";.........}.}.set_error_hand
6840 6c 65 72 28 27 74 65 73 74 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 27 29 3b 0a 0a 0a 0a 63 6c ler('test_error_handler');....cl
6860 61 73 73 20 63 6c 61 73 73 57 69 74 68 54 6f 53 74 72 69 6e 67 0a 7b 0a 20 20 20 20 20 20 20 20 ass.classWithToString.{.........
6880 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 20 7b 0a 20 public.function.__toString().{..
68a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 22 43 6c 61 73 73 20 41 20 6f ...............return."Class.A.o
68c0 62 6a 65 63 74 22 3b 0a 20 20 20 20 20 20 20 20 7d 0a 7d 0a 0a 63 6c 61 73 73 20 63 6c 61 73 73 bject";.........}.}..class.class
68e0 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 0a 7b 0a 7d 0a 0a 24 76 61 72 69 61 74 69 6f 6e 5f WithoutToString.{.}..$variation_
6900 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 6c array.=.array(...'instance.of.cl
6920 61 73 73 57 69 74 68 54 6f 53 74 72 69 6e 67 27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 69 74 assWithToString'.=>.new.classWit
6940 68 54 6f 53 74 72 69 6e 67 28 29 2c 0a 20 20 27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 6c 61 73 hToString(),...'instance.of.clas
6960 73 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 69 sWithoutToString'.=>.new.classWi
6980 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 28 29 2c 0a 20 20 29 3b 24 76 61 72 69 61 74 69 6f 6e 5f thoutToString(),...);$variation_
69a0 61 72 72 61 79 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 27 69 6e 74 20 30 27 20 3d 3e 20 30 array.=.array.(.....'int.0'.=>.0
69c0 2c 0a 20 20 20 20 27 69 6e 74 20 31 27 20 3d 3e 20 31 2c 0a 20 20 20 20 27 69 6e 74 20 31 32 33 ,.....'int.1'.=>.1,.....'int.123
69e0 34 35 27 20 3d 3e 20 31 32 33 34 35 2c 0a 20 20 20 20 27 69 6e 74 20 2d 31 32 33 34 35 27 20 3d 45'.=>.12345,.....'int.-12345'.=
6a00 3e 20 2d 32 33 34 35 2c 0a 20 20 20 20 29 3b 3c 3f 70 68 70 0a 61 62 73 74 72 61 63 74 20 63 6c >.-2345,.....);<?php.abstract.cl
6a20 61 73 73 20 67 74 54 65 73 74 53 75 62 6a 65 63 74 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 ass.gtTestSubject.{....protected
6a40 20 24 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 70 72 6f 74 65 .$optionalArgumentNames;...prote
6a60 63 74 65 64 20 24 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 0a 20 cted.$mandatoryArgumentNames;...
6a80 20 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 .protected.$extraArgumentList.=.
6aa0 27 27 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 '';...protected.$shortArgumentLi
6ac0 73 74 20 3d 20 27 27 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 65 64 41 72 st.=.'';....protected.$allowedAr
6ae0 67 75 6d 65 6e 74 4c 69 73 74 73 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6d 61 78 69 6d gumentLists;....protected.$maxim
6b00 75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 umArgumentList;......protected.$
6b20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 20 20 2f 2a initialisationStatements;...../*
6b40 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6d 61 6e 64 61 74 6f *.Return.the.list.of.all.mandato
6b60 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 ry.argument.names....*....*.@ret
6b80 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urn.array....*/...public.functio
6ba0 6e 20 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a n.getMandatoryArgumentNames().{.
6bc0 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d ....return.$this->mandatoryArgum
6be0 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 entNames;...}...../**....*.Retur
6c00 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 6d n.the.list.of.all.optional.argum
6c20 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 ent.names....*....*.@return.arra
6c40 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 y....*/...public.function.getOpt
6c60 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 ionalArgumentNames().{.....retur
6c80 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a n.$this->optionalArgumentNames;.
6ca0 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 ..}......public.function.setArgu
6cc0 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 65 74 56 61 6c 69 mentLists().{.....$this->setVali
6ce0 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 65 74 dArgumentLists();.....$this->set
6d00 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e ExtraArgumentList();.....$this->
6d20 73 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 7d 0a 0a 20 20 2f setShortArgumentList();...}..../
6d40 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 6f **....*.Set.the.argument.list.to
6d60 20 63 61 6c 6c 20 74 68 65 20 73 75 62 6a 65 63 74 20 77 69 74 68 2e 20 41 64 64 73 20 6f 6e 65 .call.the.subject.with..Adds.one
6d80 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 .extra.argument.....*....*/...pu
6da0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 blic.function.setExtraArgumentLi
6dc0 73 74 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 st().{.....if(count.($this->mand
6de0 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 atoryArgumentNames).>.0).{......
6e00 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d .for(.$i.=.0;.$i.<.count(.$this-
6e20 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 >mandatoryArgumentNames.);.$i++)
6e40 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c .{.........$this->extraArgumentL
6e60 69 73 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 ist..=."\$".$this->mandatoryArgu
6e80 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 mentNames[$i].",.";.......}.....
6ea0 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6f 70 74 }...........if(count.($this->opt
6ec0 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 ionalArgumentNames).>.0).{......
6ee0 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d .for(.$i.=.0;.$i.<.count(.$this-
6f00 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 >optionalArgumentNames.);.$i++).
6f20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 {.........$this->extraArgumentLi
6f40 73 74 20 2e 3d 20 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d st..=.."\$".$this->optionalArgum
6f60 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d entNames[$i].",.";.......}.....}
6f80 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3d 20 ......$this->extraArgumentList=.
6fa0 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 2e 20 22 5c 24 65 78 74 $this->extraArgumentList.."\$ext
6fc0 72 61 5f 61 72 67 22 3b 0a 20 20 7d 0a 20 20 20 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 ra_arg";...}......../**....*.Ret
6fe0 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 69 74 20 urn.the.list.of.arguments.as.it.
7000 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 0a 20 20 20 appears.in.the.function.call....
7020 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f 66 20 *....*.@return.string.-.list.of.
7040 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f arguments....*/...public.functio
7060 6e 20 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 n.getExtraArgumentList().{.....r
7080 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a eturn.$this->extraArgumentList;.
70a0 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6c 69 73 74 20 6f 66 ..}...../**....*.Set.the.list.of
70c0 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 74 6f 20 62 65 20 6f 6e 65 20 6c 65 .function.arguments.to.be.one.le
70e0 73 73 20 74 68 61 74 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 6d 61 6e 64 61 74 6f 72 79 20 ss.that.the.number.of.mandatory.
7100 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 arguments....*....*/...public.fu
7120 6e 63 74 69 6f 6e 20 73 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a nction.setShortArgumentList().{.
7140 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 .....if(count.($this->mandatoryA
7160 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 28 20 rgumentNames).>.0).{.......for(.
7180 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 $i.=.0;.$i.<.count(.$this->manda
71a0 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 20 2d 20 31 3b 20 24 69 2b 2b 29 20 7b toryArgumentNames.).-.1;.$i++).{
71c0 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 .........$this->shortArgumentLis
71e0 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 t..=."\$".$this->mandatoryArgume
7200 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 ntNames[$i].",.";.......}.......
7220 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 75 62 73 74 $this->shortArgumentList.=.subst
7240 72 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 2c 20 30 2c 20 2d r($this->shortArgumentList,.0,.-
7260 32 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 2);.....}...}...../**....*.Retur
7280 6e 20 74 68 65 20 73 68 6f 72 74 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 n.the.short.list.of.arguments...
72a0 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f 66 .*....*.@return.string.-.list.of
72c0 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .arguments....*/...public.functi
72e0 6f 6e 20 67 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 on.getShortArgumentList().{.....
7300 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b return.$this->shortArgumentList;
7320 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 ...}...../**....*.Construct.the.
7340 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 77 61 79 73 20 74 6f 20 63 61 6c list.of.all.possible.ways.to.cal
7360 6c 20 74 68 65 20 73 75 62 6a 65 63 74 20 28 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f l.the.subject.(function.or.metho
7380 64 29 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 d)....*....*/...public.function.
73a0 73 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a 20 20 20 20 24 74 setValidArgumentLists().{.....$t
73c0 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 30 5d 20 3d 20 27 his->allowedArgumentLists[0].=.'
73e0 27 3b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 ';.....if(count.($this->mandator
7400 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 yArgumentNames).>.0).{.......for
7420 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 6e (.$i.=.0;.$i.<.count(.$this->man
7440 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 datoryArgumentNames.);.$i++).{..
7460 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 .......$this->allowedArgumentLis
7480 74 73 5b 30 5d 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 ts[0]..=."\$".$this->mandatoryAr
74a0 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 gumentNames[$i].",.";.......}...
74c0 20 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6f ..}...........if(count.($this->o
74e0 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 ptionalArgumentNames).>.0).{....
7500 20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 ...for(.$i.=.0;.$i.<.count(.$thi
7520 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b s->optionalArgumentNames.);.$i++
7540 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 ).{.........$this->allowedArgume
7560 6e 74 4c 69 73 74 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 ntLists[].=.$this->allowedArgume
7580 6e 74 4c 69 73 74 73 5b 24 69 5d 2e 22 5c 24 22 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c ntLists[$i]."\$".$this->optional
75a0 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 20 20 ArgumentNames[$i].",.";.........
75c0 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 24 69 5d 20 $this->allowedArgumentLists[$i].
75e0 3d 20 73 75 62 73 74 72 20 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 =.substr.($this->allowedArgument
7600 4c 69 73 74 73 5b 24 69 5d 2c 20 30 2c 20 2d 32 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d Lists[$i],.0,.-2);.......}.....}
7620 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 ......$this->allowedArgumentList
7640 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 s[count($this->allowedArgumentLi
7660 73 74 73 29 20 2d 31 20 5d 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 sts).-1.].=.substr($this->allowe
7680 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 6c 6c 6f dArgumentLists[count($this->allo
76a0 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 29 20 2d 31 20 5d 2c 20 30 2c 20 2d 32 29 3b 0a wedArgumentLists).-1.],.0,.-2);.
76c0 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 61 72 72 61 ..}...../**....*.Return.the.arra
76e0 79 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 73 65 74 73 20 6f 66 20 6d 65 74 68 6f 64 y.of.all.possible.sets.of.method
7700 2f 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 /function.arguments....*....*.@r
7720 65 74 75 72 6e 20 75 6e 6b 6e 6f 77 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e eturn.unknown....*/...public.fun
7740 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a ction.getValidArgumentLists().{.
7760 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e ....return.$this->allowedArgumen
7780 74 4c 69 73 74 73 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 tLists;...}...../**....*.Returns
77a0 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 77 69 74 68 20 74 65 68 20 67 72 65 61 .the.argument.list.with.teh.grea
77c0 74 65 73 74 20 70 6f 73 73 69 62 6c 65 20 6e 75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e 74 test.possible.number.of.argument
77e0 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a s.....*....*.@return.string....*
7800 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 61 78 69 6d 75 6d 41 72 /...public.function.getMaximumAr
7820 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 65 6e 64 28 24 74 gumentList().{.....return.end($t
7840 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 29 3b 0a 20 20 7d 0a his->allowedArgumentLists);...}.
7860 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 57 72 69 74 65 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f ..../**....*.Write.initialisatio
7880 6e 20 73 74 61 74 65 6d 65 6e 73 74 20 66 6f 72 20 61 6c 6c 20 74 68 65 20 76 61 72 69 61 62 6c n.statemenst.for.all.the.variabl
78a0 65 73 20 74 68 61 74 20 6d 69 67 68 74 20 62 65 20 75 73 65 64 0a 20 20 20 2a 0a 20 20 20 2a 2f es.that.might.be.used....*....*/
78c0 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 69 74 69 61 6c 69 73 61 ...public.function.setInitialisa
78e0 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 tionStatements().{.....if(count.
7900 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 ($this->mandatoryArgumentNames).
7920 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 2d 3e 6d 61 6e >.0).{.......foreach(.$this->man
7940 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a datoryArgumentNames.as.$name).{.
7960 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 ........$this->initialisationSta
7980 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 20 tements[].=."\$".$name.".=.";...
79a0 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d ....}.....}.....if(count.($this-
79c0 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 >optionalArgumentNames).>.0).{..
79e0 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 .....foreach(.$this->optionalArg
7a00 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24 umentNames.as.$name).{.........$
7a20 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 5b 5d this->initialisationStatements[]
7a40 20 3d 20 22 5c 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 .=."\$".$name.".=.";.......}....
7a60 20 7d 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20 .}...}....../**....*.Return.the.
7a80 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 0a 20 20 20 2a 0a 20 initialisation.statements....*..
7aa0 20 20 2a 20 40 72 65 74 75 72 6e 20 75 6e 6b 6e 6f 77 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c ..*.@return.unknown....*/...publ
7ac0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 ic.function.getInitialisationSta
7ae0 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e tements().{.....return.$this->in
7b00 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d 0a 3f 3e itialisationStatements;...}.}.?>
7b20 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 43 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 70 <?php./**..*.Container.for.all.p
7b40 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 66 6f 72 ossible.variation.test.cases.for
7b60 20 61 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 .a.method..*/.class.gtVariationC
7b80 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 ontainerMethod.extends.gtVariati
7ba0 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 7b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6d 65 onContainer.{......protected.$me
7bc0 74 68 6f 64 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 thod;...protected.$optionalSecti
7be0 6f 6e 73 3b 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ons;......public.function.__cons
7c00 74 72 75 63 74 28 24 6f 73 6c 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 truct($osl).{.....$this->optiona
7c20 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 73 6c 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f 2a lSections.=.$osl;...}........./*
7c40 2a 0a 20 20 20 2a 20 53 65 74 73 20 74 68 65 20 6d 65 74 68 6f 64 20 74 6f 20 62 65 20 74 65 73 *....*.Sets.the.method.to.be.tes
7c60 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 74 68 6f 64 20 24 6d ted....*....*.@param.gtMethod.$m
7c80 65 74 68 6f 64 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 ethod....*/...public.function.se
7ca0 74 4d 65 74 68 6f 64 28 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 tMethod(gtMethod.$method).{.....
7cc0 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 20 3d 20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 20 20 0a $this->method.=.$method;...}....
7ce0 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 61 6c 6c 20 76 61 72 ...../**....*.Constructs.all.var
7d00 69 61 74 69 6f 6e 20 74 65 73 74 73 20 69 6e 20 24 74 68 69 73 5f 76 61 72 69 61 74 69 6f 6e 54 iation.tests.in.$this_variationT
7d20 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ests....*....*/...public.functio
7d40 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c 28 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 24 6e 75 6d n.constructAll().{..........$num
7d60 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6d 65 berOfArguments.=.count($this->me
7d80 74 68 6f 64 2d 3e 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 thod->getMandatoryArgumentNames(
7da0 29 29 20 2b 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 2d 3e 67 65 74 4f 70 74 )).+.count($this->method->getOpt
7dc0 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 29 3b 0a 20 20 20 20 0a 20 20 20 20 ionalArgumentNames());..........
7de0 66 6f 72 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d 20 24 6e 75 6d 62 65 72 4f 66 41 72 67 75 6d for($i.=.1;.$i.<=.$numberOfArgum
7e00 65 6e 74 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 0a 20 20 20 20 20 20 66 6f 72 65 61 ents;.$i++).{..............forea
7e20 63 68 20 28 24 74 68 69 73 2d 3e 64 61 74 61 54 79 70 65 73 20 61 73 20 24 64 29 20 7b 0a 20 20 ch.($this->dataTypes.as.$d).{...
7e40 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 56 61 72 ...............$testCase.=.gtVar
7e60 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 65 28 24 74 68 69 iationTestCase::getInstance($thi
7e80 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b 0a s->optionalSections,.'method');.
7ea0 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 73 2d 3e ........$testCase->setUp($this->
7ec0 6d 65 74 68 6f 64 2c 20 24 69 2c 20 24 64 29 3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 method,.$i,.$d);.........$testCa
7ee0 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 20 20 20 20 20 se->constructTestCase();........
7f00 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 5b 5d 20 3d 20 24 74 65 73 74 .$this->variationTests[].=.$test
7f20 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 20 Case->toString();...............
7f40 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a .}.....}...}...}.?><?php../**..*
7f60 20 43 6c 61 73 73 20 66 6f 72 20 62 61 73 69 63 20 74 65 73 74 20 63 61 73 65 20 63 6f 6e 73 74 .Class.for.basic.test.case.const
7f80 72 75 63 74 69 6f 6e 20 66 6f 72 20 63 6c 61 73 73 20 6d 65 74 68 6f 64 73 0a 20 2a 2f 0a 63 6c ruction.for.class.methods..*/.cl
7fa0 61 73 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 78 74 65 6e 64 ass.gtBasicTestCaseMethod.extend
7fc0 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 s.gtBasicTestCase.{....public.fu
7fe0 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 nction.__construct($opt).{.....$
8000 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 this->optionalSections.=.$opt;..
8020 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6d 65 74 68 6f 64 20 0a 20 .}..../**....*.Set.the.method...
8040 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 ..*....*.@param.gtMethod.$method
8060 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 74 68 ....*/...public.function.setMeth
8080 6f 64 28 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 od($method).{.....$this->subject
80a0 20 3d 20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 20 20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .=.$method;...}....public.functi
80c0 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 on.constructTestCase().{.....$th
80e0 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 0a 20 is->constructCommonHeaders();...
8100 20 20 20 24 74 68 69 73 2d 3e 61 64 64 42 61 73 69 63 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 ...$this->addBasicEcho();.......
8120 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 3b 0a ...$this->constructorArgInit();.
8140 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 74 65 49 6e 73 74 ....$this->constructorCreateInst
8160 61 6e 63 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 ance();..........$this->construc
8180 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d tSubjectCalls();..........$this-
81a0 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 0a >constructCommonClosing();......
81c0 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 ..}....public.function.testHeade
81e0 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d r().{.....$this->testCase[].=."-
8200 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 -TEST--";.....$this->testCase[].
8220 3d 20 22 54 65 73 74 20 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e =."Test.class.".$this->subject->
8240 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 20 22 2e 24 74 68 69 73 getClassName().".method..".$this
8260 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c 6c ->subject->getName()."().by.call
8280 69 6e 67 20 69 74 20 77 69 74 68 20 69 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e ing.it.with.its.expected.argumen
82a0 74 73 22 3b 0a 20 20 20 20 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ts";........}......public.functi
82c0 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 6c 69 73 74 73 20 3d on.subjectCalls().{.....$lists.=
82e0 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e .$this->subject->getValidArgumen
8300 74 4c 69 73 74 73 28 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 6c 69 73 74 73 20 61 73 tLists();......foreach($lists.as
8320 20 24 6c 69 73 74 29 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d .$list){.......$this->testCase[]
8340 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 20 5c 24 63 6c 61 73 73 2d 3e 22 2e 24 74 68 69 73 2d 3e .=."var_dump(.\$class->".$this->
8360 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 subject->getName()."(.".$list.".
8380 29 20 29 3b 22 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 ).);";.......$this->testCase.=.g
83a0 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 tCodeSnippet::appendBlankLines(1
83c0 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 ,.$this->testCase.);.....}.....$
83e0 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a this->testCase.=.gtCodeSnippet::
8400 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 appendBlankLines(2,.$this->testC
8420 61 73 65 20 29 3b 20 20 20 20 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 ase.);.......}..}.?><?php../**..
8440 2a 20 43 6c 61 73 73 20 66 6f 72 20 73 69 6d 70 6c 65 20 65 72 72 6f 72 73 20 2d 20 6f 6e 65 20 *.Class.for.simple.errors.-.one.
8460 74 6f 6f 20 6d 61 6e 79 20 61 72 67 73 20 61 6e 64 20 6f 6e 65 20 74 6f 6f 20 66 65 77 0a 20 2a too.many.args.and.one.too.few..*
8480 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 /..abstract.class.gtErrorTestCas
84a0 65 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f 74 65 63 e.extends.gtTestCase.{....protec
84c0 74 65 64 20 24 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 70 ted.$shortArgumentList.=.'';...p
84e0 72 6f 74 65 63 74 65 64 20 24 6c 6f 6e 67 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 27 27 3b rotected.$longArgumentList.=.'';
8500 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 ...../**....*.Return.instance.of
8520 20 65 69 74 68 65 72 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f 72 .either.method.or.function.error
8540 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 .test.case....*....*.@param.stri
8560 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 20 ng.$type....*.@return.test.case.
8580 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e object....*/...public.static.fun
85a0 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 ction.getInstance($optionalSecti
85c0 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 ons,.$type.=.'function').{......
85e0 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 .....if($type.==.'function').{..
8600 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46 .....return.new.gtErrorTestCaseF
8620 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 unction($optionalSections);.....
8640 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 20 }.....if($type.=='method').{....
8660 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 ...return.new.gtErrorTestCaseMet
8680 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 hod($optionalSections);.....}...
86a0 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 41 72 .}....public.function.getShortAr
86c0 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d gumentList().{.....return.$this-
86e0 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 >shortArgumentList;...}....publi
8700 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 6e 67 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 c.function.getLongArgumentList()
8720 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 6e 67 41 72 67 75 6d 65 6e .{.....return.$this->longArgumen
8740 74 4c 69 73 74 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tList;...}......public.function.
8760 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 74 constructSubjectCalls().{.....$t
8780 68 69 73 2d 3e 61 72 67 49 6e 69 74 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 2f 2f 49 6e 69 74 69 his->argInit();..........//Initi
87a0 61 6c 69 73 65 20 74 68 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 0a 20 20 alise.the.additional.argument...
87c0 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 5c 24 65 78 74 72 61 5f 61 ..$this->testCase[].=."\$extra_a
87e0 72 67 20 3d 20 22 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 43 rg.=.";..........$this->subjectC
8800 61 6c 6c 73 28 29 3b 0a 20 20 7d 0a 20 20 0a 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 alls();...}.....public.function.
8820 61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 addErrorEcho().{.....$this->test
8840 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20 5c 22 2a 2a 2a 20 54 65 73 74 20 62 79 20 63 61 6c Case[].=."echo.\"***.Test.by.cal
8860 6c 69 6e 67 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69 6e 63 ling.method.or.function.with.inc
8880 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 73 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 20 2a 2a 2a 5c orrect.numbers.of.arguments.***\
88a0 5c 6e 5c 22 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 \n\"";.....$this->testCase.=.gtC
88c0 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 odeSnippet::appendBlankLines(1,.
88e0 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 7d 0a 0a 3f 3e 3c 3f 70 68 $this->testCase.);...}.}..?><?ph
8900 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 61 6c 6c 20 74 65 73 74 20 63 61 73 p../**..*.Class.for.all.test.cas
8920 65 73 0a 20 2a 2f 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 54 65 73 74 43 61 73 65 es..*/.abstract.class.gtTestCase
8940 20 7b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 54 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 74 .{...../**....*.The.subject.of.t
8960 68 65 20 74 65 73 74 2c 20 6d 61 79 20 62 65 20 65 69 74 68 65 72 20 61 20 66 75 6e 63 74 69 6f he.test,.may.be.either.a.functio
8980 6e 20 28 67 74 46 75 6e 63 74 69 6f 6e 29 20 6f 72 20 61 20 6d 65 74 68 6f 64 20 28 67 74 4d 65 n.(gtFunction).or.a.method.(gtMe
89a0 74 68 6f 64 29 0a 20 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 67 74 4d 65 74 68 6f 64 20 6f 72 thod)....*....*.@var.gtMethod.or
89c0 20 67 74 46 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 .gtFunction....*/...protected.$s
89e0 75 62 6a 65 63 74 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 72 72 79 20 6f 66 20 73 74 72 ubject;...../**....*.Arry.of.str
8a00 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 ings.containing.the.test.case...
8a20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 .*....*.@var.array....*/...prote
8a40 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 4f 62 6a cted.$testCase;...../**....*.Obj
8a60 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 65 68 20 6f 6f 70 74 69 6f 6e 61 6c 20 73 65 63 ect.containing.teh.ooptional.sec
8a80 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 74 tions.that.may.be.added.to.the.t
8aa0 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 67 74 4f 70 74 69 6f 6e est.case....*....*.@var.gtOption
8ac0 61 6c 53 65 63 74 69 6f 6e 73 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f 70 alSections....*/...protected.$op
8ae0 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e tionalSections;...../**....*.Con
8b00 76 65 72 74 20 74 65 73 74 20 63 61 73 65 20 66 72 6f 6d 20 61 72 72 61 79 20 74 6f 20 73 74 72 vert.test.case.from.array.to.str
8b20 69 6e 67 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 ing....*....*.@return.string....
8b40 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 53 74 72 69 6e 67 28 29 20 */...public.function.toString().
8b60 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65 53 74 72 69 6e 67 20 3d 20 22 22 3b 0a 20 20 20 20 {.....$testCaseString.=."";.....
8b80 66 6f 72 65 61 63 68 28 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 61 73 20 24 6c 69 6e 65 foreach($this->testCase.as.$line
8ba0 29 20 7b 0a 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 53 74 72 69 6e 67 20 2e 3d 20 24 6c 69 ).{.......$testCaseString..=.$li
8bc0 6e 65 2e 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 65 73 74 43 ne."\n";.....}.....return.$testC
8be0 61 73 65 53 74 72 69 6e 67 3b 0a 20 20 7d 0a 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 aseString;...}....../**....*.Ret
8c00 75 72 6e 73 20 74 65 73 74 20 63 61 73 65 20 61 73 20 61 20 61 72 72 61 79 0a 20 20 20 2a 0a 20 urns.test.case.as.a.array....*..
8c20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 ..*.@return.array....*/...public
8c40 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 72 65 .function.getTestCase().{.....re
8c60 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a turn.$this->testCase;...}...../*
8c80 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 68 65 61 64 *....*.Construct.the.common.head
8ca0 65 72 73 20 28 74 69 74 6c 65 2c 20 66 69 6c 65 20 73 65 63 74 69 6f 6e 2e 2e 29 20 6f 66 20 74 ers.(title,.file.section..).of.t
8cc0 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 he.test.case....*....*/...public
8ce0 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 .function.ConstructCommonHeaders
8d00 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 48 65 61 64 65 72 28 29 3b 0a 0a 20 ().{.....$this->testHeader();...
8d20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 ...if($this->optionalSections->h
8d40 61 73 53 6b 69 70 69 66 28 29 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 53 6b asSkipif()).{.......$this->addSk
8d60 69 70 69 66 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 ipif();.....}......if($this->opt
8d80 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 49 6e 69 28 29 29 20 7b 0a 20 20 20 20 20 ionalSections->hasIni()).{......
8da0 20 24 74 68 69 73 2d 3e 61 64 64 49 6e 69 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 74 68 .$this->addIni();.....}......$th
8dc0 69 73 2d 3e 66 69 6c 65 4f 70 65 6e 69 6e 67 28 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 is->fileOpening();...}...../**..
8de0 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 63 6c 6f 73 69 6e 67 ..*.Construct.the.common.closing
8e00 20 73 74 61 74 65 6d 65 6e 74 73 20 28 63 6c 65 61 6e 2c 20 64 6f 6e 65 2c 20 45 58 50 45 43 54 .statements.(clean,.done,.EXPECT
8e20 46 2e 2e 2e 29 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 F...)....*....*/...public.functi
8e40 6f 6e 20 43 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 20 7b 0a 20 20 on.ConstructCommonClosing().{...
8e60 20 20 24 74 68 69 73 2d 3e 66 69 6c 65 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 20 0a 20 20 ..$this->fileClosing();.........
8e80 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 ..if.($this->optionalSections->h
8ea0 61 73 44 6f 6e 65 28 29 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 44 6f 6e 65 asDone()).{.......$this->addDone
8ec0 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f ();.....}...........if.($this->o
8ee0 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 43 6c 65 61 6e 28 29 29 20 7b 0a 20 ptionalSections->hasClean()).{..
8f00 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 43 6c 65 61 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a 20 .....$this->addClean();.....}...
8f20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 78 70 65 63 74 66 28 29 3b 0a 20 20 7d 0a 0a 20 20 2f ...$this->addExpectf();...}..../
8f40 2a 2a 0a 20 20 20 2a 20 53 74 61 72 74 20 74 68 65 20 46 49 4c 45 20 73 65 63 74 69 6f 6e 20 6f **....*.Start.the.FILE.section.o
8f60 66 20 74 68 65 20 74 65 73 74 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 f.the.test....*....*/...public.f
8f80 75 6e 63 74 69 6f 6e 20 66 69 6c 65 4f 70 65 6e 69 6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 69 unction.fileOpening().{.....$thi
8fa0 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 46 49 4c 45 2d 2d 22 3b 0a 20 20 20 20 s->testCase[].=."--FILE--";.....
8fc0 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 20 $this->testCase[].=."<?php";....
8fe0 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 .$this->testCase.=.gtCodeSnippet
9000 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 ::appendBlankLines(2,.$this->tes
9020 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 63 6f tCase.);...}...../**....*.Add.co
9040 6e 74 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e ntructor.argument.initialisation
9060 20 74 6f 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 .to.test.case....*....*/...publi
9080 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 20 c.function.constructorArgInit().
90a0 7b 0a 20 20 20 20 24 63 6f 6e 53 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 73 75 {.....$conStatements.=.$this->su
90c0 62 6a 65 63 74 2d 3e 67 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 bject->getConstructorInitStateme
90e0 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 63 6f 6e 53 74 61 74 65 6d 65 6e 74 nts();.....foreach($conStatement
9100 73 20 61 73 20 24 73 74 61 74 65 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e s.as.$statement).{.......$this->
9120 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d 0a 20 testCase[].=.$statement;.....}..
9140 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 72 65 61 74 65 20 69 6e 73 74 61 6e 63 65 20 .}...../**....*.Create.instance.
9160 6f 66 20 63 6c 61 73 73 20 69 6e 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 of.class.in.the.test.case....*..
9180 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 ..*/...public.function.construct
91a0 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 29 20 7b 0a 20 20 20 20 24 63 6f 6e 73 74 72 orCreateInstance().{.....$constr
91c0 75 63 74 6f 72 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 uctorList.=.$this->subject->getC
91e0 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 onstructorArgumentList();.....$t
9200 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 5c 24 63 6c 61 73 73 20 3d 20 6e 65 77 his->testCase[].=."\$class.=.new
9220 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 .".$this->subject->getClassName(
9240 29 2e 22 28 20 22 2e 24 63 6f 6e 73 74 72 75 63 74 6f 72 4c 69 73 74 2e 22 20 29 3b 22 3b 0a 20 )."(.".$constructorList.".);";..
9260 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 ...$this->testCase.=.gtCodeSnipp
9280 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 et::appendBlankLines(2,.$this->t
92a0 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 estCase.);...}...../**....*.Add.
92c0 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 69 6e 69 74 69 6c 61 69 73 61 74 69 6f function.or.method.initilaisatio
92e0 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 n.statements.to.the.test.case...
9300 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 49 6e .*....*/...public.function.argIn
9320 69 74 28 29 20 7b 0a 20 20 20 20 24 73 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e it().{.....$statements.=.$this->
9340 73 75 62 6a 65 63 74 2d 3e 67 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d subject->getInitialisationStatem
9360 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 73 74 61 74 65 6d 65 6e 74 73 20 ents();.....foreach($statements.
9380 61 73 20 24 73 74 61 74 65 6d 65 6e 74 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 as.$statement).{.......$this->te
93a0 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d 0a 20 20 20 stCase[].=.$statement;.....}....
93c0 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 .$this->testCase.=.gtCodeSnippet
93e0 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 ::appendBlankLines(2,.$this->tes
9400 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 46 49 tCase.);...}...../**....*.Add.FI
9420 4c 45 20 73 65 63 74 69 6f 6e 20 63 6c 6f 73 69 6e 67 20 74 61 67 20 74 6f 20 74 65 68 20 74 65 LE.section.closing.tag.to.teh.te
9440 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 st.case....*....*/...public.func
9460 74 69 6f 6e 20 66 69 6c 65 43 6c 6f 73 69 6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e tion.fileClosing().{.....$this->
9480 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 testCase[].=."?>";...}...../**..
94a0 20 20 2a 20 41 64 64 20 61 20 73 6b 69 70 69 66 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 ..*.Add.a.skipif.section.to.the.
94c0 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 test.case....*....*/...public.fu
94e0 6e 63 74 69 6f 6e 20 61 64 64 53 6b 69 70 69 66 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e nction.addSkipif().{.....$this->
9500 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 53 4b 49 50 49 46 2d 2d 22 3b 0a 20 20 20 20 24 testCase[].=."--SKIPIF--";.....$
9520 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 20 20 this->testCase[].=."<?php";.....
9540 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 53 if($this->optionalSections->hasS
9560 6b 69 70 69 66 4b 65 79 28 29 29 20 7b 0a 20 20 20 20 20 20 24 6b 65 79 20 3d 20 24 74 68 69 73 kipifKey()).{.......$key.=.$this
9580 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 67 65 74 53 6b 69 70 69 66 4b 65 79 ->optionalSections->getSkipifKey
95a0 28 29 3b 0a 20 20 20 20 20 20 2f 2f 74 65 73 74 20 73 74 61 6e 64 61 72 64 20 73 6b 69 70 69 66 ();.......//test.standard.skipif
95c0 20 73 65 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 77 69 6e 27 .sections.......if($key.==.'win'
95e0 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 ).{.........$this->testCase.=.gt
9600 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 77 69 6e 27 2c CodeSnippet::append('skipifwin',
9620 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 .$this->testCase);.......}......
9640 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 6e 6f 74 77 69 6e 27 20 29 20 7b 0a 20 20 20 20 20 20 20 .if($key.==.'notwin'.).{........
9660 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 .$this->testCase.=.gtCodeSnippet
9680 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 6e 6f 74 77 69 6e 27 2c 20 24 74 68 69 73 2d 3e ::append('skipifnotwin',.$this->
96a0 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 28 24 6b 65 testCase);.......}........if($ke
96c0 79 20 3d 3d 20 27 36 34 62 27 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 y.==.'64b'.).{.........$this->te
96e0 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 stCase.=.gtCodeSnippet::append('
9700 73 6b 69 70 69 66 36 34 62 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 skipif64b',.$this->testCase);...
9720 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 6e 6f 74 36 34 62 27 ....}........if($key.==.'not64b'
9740 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 .).{.........$this->testCase.=.g
9760 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 6e 6f 74 36 tCodeSnippet::append('skipifnot6
9780 34 62 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 4b',.$this->testCase);.......}..
97a0 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 ...}......if($this->optionalSect
97c0 69 6f 6e 73 2d 3e 68 61 73 53 6b 69 70 69 66 45 78 74 28 29 29 20 7b 0a 20 20 20 20 20 20 24 65 ions->hasSkipifExt()).{.......$e
97e0 78 74 20 3d 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 67 65 xt.=.$this->optionalSections->ge
9800 74 53 6b 69 70 69 66 45 78 74 28 29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 tSkipifExt();.......$this->testC
9820 61 73 65 5b 5d 20 3d 20 22 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 ase[].=."if.(!extension_loaded('
9840 24 65 78 74 27 29 29 20 64 69 65 20 28 27 73 6b 69 70 20 24 65 78 74 20 65 78 74 65 6e 73 69 6f $ext')).die.('skip.$ext.extensio
9860 6e 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 74 68 69 73 20 62 75 69 6c 64 27 29 3b n.not.available.in.this.build');
9880 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d ";.....}.....$this->testCase[].=
98a0 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 6e 20 49 ."?>";...}...../**....*.Add.an.I
98c0 4e 49 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a NI.section.to.the.test.case....*
98e0 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 49 6e 69 28 ....*/...public.function.addIni(
9900 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 49 ).{.....$this->testCase[].=."--I
9920 4e 49 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 NI--";.....$this->testCase[].=."
9940 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 20 63 6c 65 61 6e 20 ";...}...../**....*.Add.a.clean.
9960 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 section.to.the.test.case....*...
9980 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 65 61 6e 28 29 .*/...public.function.addClean()
99a0 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 43 4c .{.....$this->testCase[].=."--CL
99c0 45 41 4e 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 EAN--";.....$this->testCase[].=.
99e0 22 3c 3f 70 68 70 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d "<?php";.....$this->testCase[].=
9a00 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 20 3d 3d ."?>";...}...../**....*.Add.a.==
9a20 3d 44 4f 4e 45 3d 3d 3d 20 73 74 61 74 65 6d 65 6e 74 20 74 6f 20 74 68 65 20 74 65 73 74 20 63 =DONE===.statement.to.the.test.c
9a40 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ase....*....*/...public.function
9a60 20 61 64 64 44 6f 6e 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 .addDone().{.....$this->testCase
9a80 5b 5d 20 3d 20 22 3d 3d 3d 44 4f 4e 45 3d 3d 3d 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 [].=."===DONE===";...}...../**..
9aa0 20 20 2a 20 41 64 64 20 61 6e 20 45 58 50 45 43 54 46 20 73 65 63 74 69 6f 6e 0a 20 20 20 2a 0a ..*.Add.an.EXPECTF.section....*.
9ac0 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 78 70 65 63 ...*/...public.function.addExpec
9ae0 74 66 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 tf().{.....$this->testCase[].=."
9b00 2d 2d 45 58 50 45 43 54 46 2d 2d 22 3b 0a 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 74 --EXPECTF--";.....if.($this->opt
9b20 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 73 44 6f 6e 65 28 29 20 29 7b 0a 20 20 20 20 ionalSections->hasDone().){.....
9b40 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 27 3d 3d 3d 44 4f 4e 45 3d 3d ..$this->testCase[].=.'===DONE==
9b60 3d 27 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =';.....}...}....public.function
9b80 20 67 65 74 4f 70 74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 .getOpt().{.....return.$this->op
9ba0 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f tionalSections;...}.}.?><?php../
9bc0 2a 2a 0a 20 2a 20 42 61 73 69 63 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 50 48 50 20 **..*.Basic.test.case.for.a.PHP.
9be0 66 75 6e 63 74 69 6f 6e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 42 61 73 69 63 54 65 73 function..*..*/.class.gtBasicTes
9c00 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 42 61 73 69 63 54 65 73 tCaseFunction.extends.gtBasicTes
9c20 74 43 61 73 65 20 7b 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f tCase.{.....public.function.__co
9c40 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f nstruct($opt).{.....$this->optio
9c60 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 nalSections.=.$opt;...}..../**..
9c80 20 20 2a 20 53 65 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 2a 0a 20 ..*.Set.the.function.name....*..
9ca0 20 20 2a 20 40 70 61 72 61 6d 20 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a ..*.@param.gtFunction.$function.
9cc0 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 6e 63 74 ...*/...public.function.setFunct
9ce0 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a ion($function).{.....$this->subj
9d00 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 ect.=.$function;...}....public.f
9d20 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 unction.constructTestCase().{...
9d40 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 ..$this->constructCommonHeaders(
9d60 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 42 61 73 69 63 45 63 68 6f 28 );..........$this->addBasicEcho(
9d80 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 62 6a );..........$this->constructSubj
9da0 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 ectCalls();..........$this->cons
9dc0 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 0a 20 20 7d 0a 0a 0a tructCommonClosing();.......}...
9de0 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 65 73 74 20 63 61 73 65 20 68 ../**....*.Construct.test.case.h
9e00 65 61 64 65 72 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eader....*....*/...public.functi
9e20 6f 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 2f 2f 4f 70 65 6e 69 6e 67 20 on.testHeader().{.....//Opening.
9e40 73 65 63 74 69 6f 6e 20 61 6e 64 20 73 74 61 72 74 20 6f 66 20 74 65 73 74 20 63 61 73 65 20 61 section.and.start.of.test.case.a
9e60 72 72 61 79 2e 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d rray......$this->testCase[].=."-
9e80 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 -TEST--";.....$this->testCase[].
9ea0 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 =."Test.function.".$this->subjec
9ec0 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c 6c 69 6e 67 20 69 74 20 77 t->getName()."().by.calling.it.w
9ee0 69 74 68 20 69 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 20 7d ith.its.expected.arguments";...}
9f00 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 74 68 65 20 74 65 73 74 20 73 65 63 74 69 6f ..../**....*.Add.the.test.sectio
9f20 6e 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a n.to.call.the.function....*....*
9f40 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 /...public.function.subjectCalls
9f60 28 29 20 7b 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 ().{.....//.Construct.the.argume
9f80 6e 74 20 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 nt.list.to.pass.to.the.function.
9fa0 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 73 20 3d 20 24 74 68 69 73 2d being.tested.....$lists.=.$this-
9fc0 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28 >subject->getValidArgumentLists(
9fe0 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 28 24 6c 69 73 74 73 20 61 73 20 24 6c 69 73 74 29 );......foreach($lists.as.$list)
a000 7b 0a 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 {........$this->testCase.=.gtCod
a020 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 eSnippet::appendBlankLines(1,.$t
a040 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 his->testCase.);.......$this->te
a060 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 stCase[].=."var_dump(".$this->su
a080 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 bject->getName()."(.".$list.".).
a0a0 29 3b 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d );";.....}.....$this->testCase.=
a0c0 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 .gtCodeSnippet::appendBlankLines
a0e0 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e (2,.$this->testCase.);...}..}.?>
a100 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 45 72 72 6f 72 20 74 65 73 74 20 63 61 73 65 20 66 6f <?php../**..*.Error.test.case.fo
a120 72 20 61 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 r.a.PHP.function..*..*/.class.gt
a140 45 72 72 6f 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 ErrorTestCaseFunction.extends.gt
a160 45 72 72 6f 72 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ErrorTestCase.{....public.functi
a180 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 73 on.__construct($opt).{.....$this
a1a0 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a 0a ->optionalSections.=.$opt;...}..
a1c0 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 6d 65 ../**....*.Set.the.function.name
a1e0 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e 63 74 69 ....*....*.@param.string.$functi
a200 6f 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 on....*/...public.function.setFu
a220 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 nction($function).{.....$this->s
a240 75 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a ubject.=.$function;...}...../**.
a260 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 73 20 ...*.Construct.the.test.case.as.
a280 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 an.array.of.strings....*....*/..
a2a0 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 .public.function.constructTestCa
a2c0 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f se().{.....$this->constructCommo
a2e0 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 nHeaders();..........$this->addE
a300 72 72 6f 72 45 63 68 6f 28 29 3b 0a 20 20 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f rrorEcho();............$this->co
a320 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 nstructSubjectCalls();..........
a340 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b $this->constructCommonClosing();
a360 0a 20 20 20 20 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 ........}.....public.function.te
a380 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 stHeader().{.....$this->testCase
a3a0 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 [].=."--TEST--";.....$this->test
a3c0 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 73 2d Case[].=."Test.function.".$this-
a3e0 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c 6c 69 >subject->getName()."().by.calli
a400 6e 67 20 69 74 20 6d 6f 72 65 20 74 68 61 6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 74 73 ng.it.more.than.or.less.than.its
a420 20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 .expected.arguments";...}....pub
a440 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 lic.function.subjectCalls().{...
a460 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 ..//.Construct.the.argument.list
a480 73 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 s.to.pass.to.the.function.being.
a4a0 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 tested.....$list.=.$this->subjec
a4c0 74 2d 3e 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 t->getExtraArgumentList();.....$
a4e0 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a this->testCase.=.gtCodeSnippet::
a500 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 appendBlankLines(1,.$this->testC
a520 61 73 65 20 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 ase.);.....$this->testCase[].=."
a540 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 var_dump(".$this->subject->getNa
a560 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 0a 20 20 20 20 24 6c me()."(.".$list.".).);";......$l
a580 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 53 68 6f 72 74 41 72 ist.=.$this->subject->getShortAr
a5a0 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 gumentList();.....$this->testCas
a5c0 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 e.=.gtCodeSnippet::appendBlankLi
a5e0 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 24 74 nes(1,.$this->testCase.);.....$t
a600 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 his->testCase[].=."var_dump(".$t
a620 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 his->subject->getName()."(.".$li
a640 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 st.".).);";.....$this->testCase.
a660 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 =.gtCodeSnippet::appendBlankLine
a680 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a 3f s(2,.$this->testCase.);...}..}.?
a6a0 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 74 69 ><?php../**..*.Class.for.variati
a6c0 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 61 20 50 48 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a 2f 0a on.tests.for.a.PHP.function..*/.
a6e0 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f class.gtVariationTestCaseFunctio
a700 6e 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 7b 0a n.extends.gtVariationTestCase.{.
a720 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a 20 20 ...protected.$argumentNumber;...
a740 70 72 6f 74 65 63 74 65 64 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70 72 6f 74 protected.$variationData;...prot
a760 65 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 ected.$testCase;....public.funct
a780 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 ion.__construct($opt).{.....$thi
a7a0 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a s->optionalSections.=.$opt;...}.
a7c0 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 64 61 74 61 20 6e 65 65 64 65 20 74 6f 20 63 6f 6e ../**....*.Set.data.neede.to.con
a7e0 73 74 72 75 63 74 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a struct.variation.tests....*....*
a800 20 40 70 61 72 61 6d 20 67 74 66 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 20 20 .@param.gtfunction.$function....
a820 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 0a *.@param.string.$argumentNumber.
a840 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 ...*.@param.string.$variationDat
a860 61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 28 a....*/...public.function.setUp(
a880 67 74 66 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 2c 20 24 61 72 67 75 6d 65 6e 74 4e gtfunction.$function,.$argumentN
a8a0 75 6d 62 65 72 2c 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 29 20 7b 0a 20 20 20 20 24 74 68 umber,.$variationData).{.....$th
a8c0 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 24 74 68 is->subject.=.$function;.....$th
a8e0 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 3d 20 24 61 72 67 75 6d 65 6e 74 4e 75 is->argumentNumber.=.$argumentNu
a900 6d 62 65 72 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 20 3d mber;.....$this->variationData.=
a920 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 .$variationData;....}...../**...
a940 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 73 20 .*.Constructs..the.test.case.as.
a960 61 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 a.array.of.strings....*....*/...
a980 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 public.function.constructTestCas
a9a0 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e e().{.....$this->constructCommon
a9c0 48 65 61 64 65 72 73 28 29 3b 20 0a 20 20 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 Headers();.............$this->ad
a9e0 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 dVariationEcho();..........$this
aa00 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a ->constructSubjectCalls();......
aa20 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e ....$this->constructCommonClosin
aa40 67 28 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 g();........}...public.function.
aa60 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 testHeader().{.....$this->testCa
aa80 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 se[].=."--TEST--";.....$this->te
aaa0 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 stCase[].=."Test.function.".$thi
aac0 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 73 75 62 s->subject->getName()."().by.sub
aae0 73 74 69 74 75 74 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 67 75 stituting.argument.".$this->argu
ab00 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 77 69 74 68 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 69 61 mentNumber.".with.".$this->varia
ab20 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 6c 75 65 73 2e 22 3b 0a 20 20 7d 0a 0a 20 20 0a 20 20 70 tionData.".values.";...}.......p
ab40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 20 ublic.function.subjectCalls().{.
ab60 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 .....$this->testCase.=.gtCodeSni
ab80 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c 6f 6f 70 53 74 61 72 74 27 2c 20 24 74 68 69 73 2d ppet::append('loopStart',.$this-
aba0 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 >testCase);......//.Construct.th
abc0 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 66 e.argument.list.to.pass.to.the.f
abe0 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 61 72 67 75 6d 65 unction.being.tested.....$argume
ac00 6e 74 4c 69 73 74 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 2c 20 24 74 68 69 73 2d 3e 73 75 62 ntList.=.explode(",",.$this->sub
ac20 6a 65 63 74 2d 3e 67 65 74 4d 61 78 69 6d 75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 29 3b ject->getMaximumArgumentList());
ac40 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 5b 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 .....$argumentList[$this->argume
ac60 6e 74 4e 75 6d 62 65 72 20 2d 31 20 5d 20 3d 20 22 5c 24 76 61 72 20 22 3b 0a 20 20 20 20 24 6c ntNumber.-1.].=."\$var.";.....$l
ac80 69 73 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 2c 20 22 2c 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 ist.=.implode(",.",.$argumentLis
aca0 74 29 3b 0a 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 20 t);.......$this->testCase[].=.".
acc0 20 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e .var_dump(".$this->subject->getN
ace0 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 24 74 ame()."(.".$list.".).);";.....$t
ad00 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 his->testCase.=.gtCodeSnippet::a
ad20 70 70 65 6e 64 28 27 6c 6f 6f 70 43 6c 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 ppend('loopClose',.$this->testCa
ad40 73 65 29 3b 0a 20 20 7d 0a 20 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 se);...}.....}.?><?php../**..*.C
ad60 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 ontainer.for.all.possible.variat
ad80 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 0a 20 2a 2f 0a ion.test.cases.of.functions..*/.
ada0 63 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 class.gtVariationContainerFuncti
adc0 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 on.extends.gtVariationContainer.
ade0 7b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 70 72 {......protected.$function;...pr
ae00 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 20 20 0a 20 20 otected.$optionalSections;......
ae20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 73 6c public.function.__construct($osl
ae40 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 ).{.....$this->optionalSections.
ae60 3d 20 24 6f 73 6c 3b 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 73 20 66 =.$osl;...}....../**....*.Sets.f
ae80 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40 unction.being.tested....*....*.@
aea0 70 61 72 61 6d 20 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 2f param.gtFunction.$function....*/
aec0 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 6e 63 74 69 6f 6e 28 67 ...public.function.setFunction(g
aee0 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 tFunction.$function).{.....$this
af00 2d 3e 66 75 6e 63 74 69 6f 6e 20 3d 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 20 20 0a 20 ->function.=.$function;...}.....
af20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 75 63 74 73 20 61 6c 6c 20 70 6f 73 73 69 ..../**....*.Constucts.all.possi
af40 62 6c 65 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 63 61 73 65 73 20 69 6e 20 61 72 72 61 79 ble.variation.testcases.in.array
af60 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a .$this->variationTests....*....*
af80 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c /...public.function.constructAll
afa0 28 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 24 6e 75 6d 62 65 72 4f 66 ().{...................$numberOf
afc0 41 72 67 75 6d 65 6e 74 73 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 75 6e 63 74 69 6f Arguments.=.count($this->functio
afe0 6e 2d 3e 67 65 74 4d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 29 20 n->getMandatoryArgumentNames()).
b000 2b 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 +.count($this->function->getOpti
b020 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 29 3b 0a 20 20 20 20 66 6f 72 28 24 69 onalArgumentNames());.....for($i
b040 20 3d 20 31 3b 20 24 69 20 3c 3d 20 24 6e 75 6d 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 73 3b 20 .=.1;.$i.<=.$numberOfArguments;.
b060 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 61 $i++).{.......foreach.($this->da
b080 74 61 54 79 70 65 73 20 61 73 20 24 64 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 taTypes.as.$d).{.........$testCa
b0a0 73 65 20 3d 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 3a 3a 67 65 74 49 6e 73 se.=.gtVariationTestCase::getIns
b0c0 74 61 6e 63 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a tance($this->optionalSections);.
b0e0 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 73 2d 3e ........$testCase->setUp($this->
b100 66 75 6e 63 74 69 6f 6e 2c 20 24 69 2c 20 24 64 29 3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 function,.$i,.$d);.........$test
b120 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 20 20 20 Case->constructTestCase();......
b140 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 5b 5d 20 3d 20 24 74 65 ...$this->variationTests[].=.$te
b160 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 stCase->toString();.......}.....
b180 7d 0a 20 20 7d 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 45 72 72 6f 72 20 }...}...}.?><?php../**..*.Error.
b1a0 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 50 48 50 20 6d 65 74 68 6f 64 0a 20 2a 0a 20 2a test.case.for.a.PHP.method..*..*
b1c0 2f 0a 63 6c 61 73 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 78 /.class.gtErrorTestCaseMethod.ex
b1e0 74 65 6e 64 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 tends.gtErrorTestCase.{....publi
b200 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 7b 0a 20 c.function.__construct($opt).{..
b220 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 ...$this->optionalSections.=.$op
b240 74 3b 0a 20 20 7d 0a 20 20 70 72 69 76 61 74 65 20 24 6d 65 74 68 6f 64 3b 0a 0a 20 20 2f 2a 2a t;...}...private.$method;..../**
b260 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 0a 20 20 20 2a 0a 20 ....*.Set.the.method.name....*..
b280 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6d 65 74 68 6f 64 0a 20 20 20 2a 2f 0a ..*.@param.string.$method....*/.
b2a0 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 ..public.function.setMethod($met
b2c0 68 6f 64 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 6d 65 74 hod).{.....$this->subject.=.$met
b2e0 68 6f 64 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 hod;...}...../**....*.Construct.
b300 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74 72 the.test.case.as.an.array.of.str
b320 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ings....*....*/...public.functio
b340 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 n.constructTestCase().{.....$thi
b360 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20 20 s->constructCommonHeaders();....
b380 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 3b 0a 20 20 20 ......$this->addErrorEcho();....
b3a0 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 ......$this->constructorArgInit(
b3c0 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 74 65 49 );.....$this->constructorCreateI
b3e0 6e 73 74 61 6e 63 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 nstance();..........$this->const
b400 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 ructSubjectCalls();..........$th
b420 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 is->constructCommonClosing();...
b440 7d 0a 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 72 }.....public.function.testHeader
b460 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d ().{.....$this->testCase[].=."--
b480 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d TEST--";.....$this->testCase[].=
b4a0 20 22 54 65 73 74 20 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 ."Test.class.".$this->subject->g
b4c0 65 74 43 6c 61 73 73 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 22 2e 24 74 68 69 73 2d 3e etClassName().".method.".$this->
b4e0 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c 6c 69 6e subject->getName()."().by.callin
b500 67 20 69 74 20 6d 6f 72 65 20 74 68 61 6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 74 73 20 g.it.more.than.or.less.than.its.
b520 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 20 0a 20 20 70 75 62 expected.arguments";...}.....pub
b540 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 0a 20 lic.function.subjectCalls().{...
b560 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 ...//.Construct.the.argument.lis
b580 74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20 6d 65 74 68 6f 64 20 62 65 69 6e 67 20 74 65 t.to.pass.to.the.method.being.te
b5a0 73 74 65 64 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d sted.....$list.=.$this->subject-
b5c0 3e 67 65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 >getExtraArgumentList();.....$th
b5e0 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 is->testCase.=.gtCodeSnippet::ap
b600 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 pendBlankLines(1,.$this->testCas
b620 65 20 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 e.);.....$this->testCase[].=."va
b640 72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 r_dump(".$this->subject->getName
b660 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 0a 20 20 20 20 ()."(.".$list.".).);";..........
b680 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 53 68 6f 72 74 $list.=.$this->subject->getShort
b6a0 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 ArgumentList();.....$this->testC
b6c0 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b ase.=.gtCodeSnippet::appendBlank
b6e0 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 Lines(1,.$this->testCase.);.....
b700 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e $this->testCase[].=."var_dump(".
b720 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 $this->subject->getName()."(.".$
b740 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a list.".).);";......}.}.?><?php..
b760 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 62 61 73 69 63 20 74 65 73 74 20 63 61 73 65 /**..*.Class.for.basic.test.case
b780 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e 0a 20 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 .construction..*/..abstract.clas
b7a0 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 s.gtBasicTestCase.extends.gtTest
b7c0 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 73 75 62 6a 65 63 74 3b 0a 0a 0a Case.{....protected.$subject;...
b7e0 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f ../**....*.Returns.an.instance.o
b800 66 20 61 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 6d 65 74 68 6f 64 20 6f 72 20 61 20 f.a.test.case.for.a.method.or.a.
b820 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 function....*....*.@param.string
b840 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 20 6f 62 .$type....*.@return.test.case.ob
b860 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 ject....*/...public.static.funct
b880 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e ion.getInstance($optionalSection
b8a0 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 69 66 28 s,.$type.=.'function').{.....if(
b8c0 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 $type.==.'function').{.......ret
b8e0 75 72 6e 20 6e 65 77 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 28 urn.new.gtBasicTestCaseFunction(
b900 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 $optionalSections);.....}.....if
b920 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 ($type.=='method').{.......retur
b940 6e 20 6e 65 77 20 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 28 24 6f 70 74 n.new.gtBasicTestCaseMethod($opt
b960 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 20 70 ionalSections);.....}...}......p
b980 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 ublic.function.constructSubjectC
b9a0 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 72 67 49 6e 69 74 28 alls().{.........$this->argInit(
b9c0 29 3b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 );.........$this->subjectCalls()
b9e0 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 42 61 ;...}......public.function.addBa
ba00 73 69 63 45 63 68 6f 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b sicEcho().{.....$this->testCase[
ba20 5d 20 3d 20 22 65 63 68 6f 20 5c 22 2a 2a 2a 20 54 65 73 74 20 62 79 20 63 61 6c 6c 69 6e 67 20 ].=."echo.\"***.Test.by.calling.
ba40 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69 74 73 20 65 78 70 65 method.or.function.with.its.expe
ba60 63 74 65 64 20 61 72 67 75 6d 65 6e 74 73 20 2a 2a 2a 5c 5c 6e 5c 22 22 3b 0a 20 20 20 20 24 74 cted.arguments.***\\n\"";.....$t
ba80 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 his->testCase.=.gtCodeSnippet::a
baa0 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 ppendBlankLines(1,.$this->testCa
bac0 73 65 20 29 3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6f 6e 74 se.);...}.}.?><?php../**..*.Cont
bae0 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 69 6f 6e ainer.for.all.possible.variation
bb00 20 74 65 73 74 20 63 61 73 65 73 0a 20 2a 2f 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 .test.cases..*/.abstract.class.g
bb20 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 7b 0a 20 20 0a 20 20 70 72 6f 74 65 tVariationContainer.{......prote
bb40 63 74 65 64 20 24 76 61 72 69 61 74 69 6f 6e 54 65 73 74 73 3b 0a 20 20 0a 20 20 70 72 6f 74 65 cted.$variationTests;......prote
bb60 63 74 65 64 20 24 64 61 74 61 54 79 70 65 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 20 20 20 cted.$dataTypes.=.array.(.......
bb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 61 72 72 61 79 27 2c 0a 20 20 20 20 ...................'array',.....
bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 6f 6f 6c 65 61 6e 27 2c 0a .....................'boolean',.
bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 70 74 79 55 .........................'emptyU
bbe0 6e 73 65 74 55 6e 64 65 66 4e 75 6c 6c 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nsetUndefNull',.................
bc00 20 20 20 20 20 20 20 20 20 27 66 6c 6f 61 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........'float',...............
bc20 20 20 20 20 20 20 20 20 20 20 20 27 69 6e 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........'int',...............
bc40 20 20 20 20 20 20 20 20 20 20 20 27 6f 62 6a 65 63 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ...........'object',............
bc60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 27 2c 0a 20 20 20 20 20 20 20 20 ..............'string',.........
bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 0a 20 20 0a 20 20 20 20 20 20 .................);.............
bca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 ................../**....*.Retur
bcc0 6e 20 61 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 63 6f 6e 74 61 69 6e 65 72 73 20 66 6f n.an.instance.of.a.containers.fo
bce0 72 20 65 69 74 68 65 72 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 74 65 73 74 r.either.function.or.method.test
bd00 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 0a s....*....*.@param.string.$type.
bd20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 20 63 6f 6e 74 ...*.@return.variation.test.cont
bd40 61 69 6e 65 72 0a 20 20 20 2a 2f 0a 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e ainer....*/....public.static.fun
bd60 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 20 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 ction.getInstance.($optionalSect
bd80 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 ions,.$type.=.'function').{.....
bda0 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 .....if($type.==.'function').{..
bdc0 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 .....return.new.gtVariationConta
bde0 69 6e 65 72 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b inerFunction($optionalSections);
be00 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 27 29 20 .....}.....if($type.=='method').
be20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f {.......return.new.gtVariationCo
be40 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 ntainerMethod($optionalSections)
be60 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 ;.....}........}.........public.
be80 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c 28 29 20 7b 0a 20 20 7d 0a 20 20 function.constructAll().{...}...
bea0 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6c 6c 20 76 61 72 61 69 ....../**....*.Returns.all.varai
bec0 74 69 6f 6e 20 74 65 73 74 73 20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 61 72 72 61 79 73 tion.tests.as.an.array.of.arrays
bee0 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a ....*....*.@return.string....*/.
bf00 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 61 72 69 61 74 69 6f 6e 54 65 ..public.function.getVariationTe
bf20 73 74 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 sts().{.....return.$this->variat
bf40 69 6f 6e 54 65 73 74 73 3b 0a 20 20 7d 0a 20 20 0a 7d 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a 2f 2a 2a ionTests;...}....}.?>.<?php../**
bf60 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 65 78 74 65 6e 64 65 64 20 76 61 72 69 61 74 69 6f 6e ..*.Class.for.extended.variation
bf80 73 2e 20 4e 65 65 64 73 20 27 64 61 74 61 20 74 79 70 65 27 20 61 6e 64 20 61 72 67 75 6d 65 6e s..Needs.'data.type'.and.argumen
bfa0 74 20 74 6f 20 76 61 72 79 0a 20 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 t.to.vary..*/..abstract.class.gt
bfc0 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 65 73 74 VariationTestCase.extends.gtTest
bfe0 43 61 73 65 20 7b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 6e 20 69 Case.{...../**....*.Returns.an.i
c000 6e 73 74 61 6e 63 65 20 6f 66 20 61 20 74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 6d 65 74 nstance.of.a.test.case.for.a.met
c020 68 6f 64 20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 hod.or.a.function....*....*.@par
c040 61 6d 20 73 74 72 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 74 65 73 am.string.$type....*.@return.tes
c060 74 20 63 61 73 65 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 t.case.object....*/...public.sta
c080 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e tic.function.getInstance($option
c0a0 61 6c 53 65 63 74 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 alSections,.$type.=.'function').
c0c0 7b 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 74 69 6f {...........if($type.==.'functio
c0e0 6e 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 n').{.......return.new.gtVariati
c100 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 onTestCaseFunction($optionalSect
c120 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74 ions);.....}.....if($type.=='met
c140 68 6f 64 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 61 hod').{.......return.new.gtVaria
c160 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 tionTestCaseMethod($optionalSect
c180 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 ions);.....}....}....public.func
c1a0 74 69 6f 6e 20 61 72 67 49 6e 69 74 56 61 72 69 61 74 69 6f 6e 28 29 20 7b 0a 20 20 20 20 24 73 tion.argInitVariation().{.....$s
c1c0 74 61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 49 tatements.=.$this->subject->getI
c1e0 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 nitialisationStatements();.....f
c200 6f 72 28 24 69 3d 30 3b 20 24 69 3c 63 6f 75 6e 74 28 24 73 74 61 74 65 6d 65 6e 74 73 29 3b 20 or($i=0;.$i<count($statements);.
c220 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 69 66 28 24 69 20 21 3d 20 28 20 24 74 68 69 73 2d 3e $i++).{.......if($i.!=.(.$this->
c240 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24 argumentNumber.-1).).{.........$
c260 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 73 5b 24 this->testCase[].=.$statements[$
c280 69 5d 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 i];.......}.....}.....$this->tes
c2a0 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 tCase.=.gtCodeSnippet::appendBla
c2c0 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 nkLines(2,.$this->testCase.);...
c2e0 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 61 72 69 61 74 69 6f }....public.function.addVariatio
c300 6e 43 6f 64 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 nCode().{.....$this->testCase.=.
c320 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e 76 61 72 gtCodeSnippet::append($this->var
c340 69 61 74 69 6f 6e 44 61 74 61 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 iationData,.$this->testCase);...
c360 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 ..$this->testCase.=.gtCodeSnippe
c380 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 t::appendBlankLines(2,.$this->te
c3a0 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e stCase.);...}....public.function
c3c0 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 .constructSubjectCalls().{.....$
c3e0 74 68 69 73 2d 3e 61 72 67 49 6e 69 74 56 61 72 69 61 74 69 6f 6e 28 29 3b 0a 20 20 20 20 24 74 this->argInitVariation();.....$t
c400 68 69 73 2d 3e 61 64 64 56 61 72 69 61 74 69 6f 6e 43 6f 64 65 28 29 3b 0a 20 20 20 20 24 74 68 his->addVariationCode();.....$th
c420 69 73 2d 3e 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 is->subjectCalls();...}....publi
c440 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 20 7b 0a c.function.addVariationEcho().{.
c460 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20 5c 22 ....$this->testCase[].=."echo.\"
c480 2a 2a 2a 20 54 65 73 74 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 22 ***.Test.substituting.argument."
c4a0 2e 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 77 69 74 68 20 22 2e .$this->argumentNumber.".with.".
c4c0 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 6c 75 65 73 20 2a 2a $this->variationData.".values.**
c4e0 2a 5c 5c 6e 5c 22 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 *\\n\";";.....$this->testCase.=.
c500 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 gtCodeSnippet::appendBlankLines(
c520 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 1,.$this->testCase.);...}..}.?><
c540 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 74 69 6f 6e ?php../**..*.Class.for.variation
c560 20 74 65 73 74 73 20 66 6f 72 20 61 20 50 48 50 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63 6c 61 73 .tests.for.a.PHP.method..*/.clas
c580 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 78 74 65 s.gtVariationTestCaseMethod.exte
c5a0 6e 64 73 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f nds.gtVariationTestCase.{....pro
c5c0 74 65 63 74 65 64 20 24 73 75 62 6a 65 63 74 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 61 72 tected.$subject;...protected.$ar
c5e0 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 76 61 72 69 61 gumentNumber;...protected.$varia
c600 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b tionData;...protected.$testCase;
c620 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 ....public.function.__construct(
c640 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 $opt).{.....$this->optionalSecti
c660 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 ons.=.$opt;...}..../**....*.Set.
c680 64 61 74 61 20 6e 65 65 64 65 20 74 6f 20 63 6f 6e 73 74 72 75 63 74 20 76 61 72 69 61 74 69 6f data.neede.to.construct.variatio
c6a0 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 74 68 6f n.tests....*....*.@param.gtMetho
c6c0 64 20 24 6d 65 74 68 6f 64 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 61 72 d.$method....*.@param.string.$ar
c6e0 67 75 6d 65 6e 74 4e 75 6d 62 65 72 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 gumentNumber....*.@param.string.
c700 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 $variationData....*/...public.fu
c720 6e 63 74 69 6f 6e 20 73 65 74 55 70 28 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 2c 20 24 nction.setUp(gtMethod.$method,.$
c740 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2c 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 29 20 argumentNumber,.$variationData).
c760 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 6d 65 74 68 6f 64 3b 0a {.....$this->subject.=.$method;.
c780 20 20 20 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 3d 20 24 61 72 67 ....$this->argumentNumber.=.$arg
c7a0 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f umentNumber;.....$this->variatio
c7c0 6e 44 61 74 61 20 3d 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 7d 0a 0a 0a 20 20 nData.=.$variationData;...}.....
c7e0 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20 74 68 65 20 74 65 73 74 20 63 61 73 /**....*.Constructs.the.test.cas
c800 65 20 61 73 20 61 20 61 72 72 61 79 20 6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 e.as.a.array.of.strings....*....
c820 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 */...public.function.constructTe
c840 73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 stCase().{.....$this->constructC
c860 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e ommonHeaders();..........$this->
c880 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 addVariationEcho();..........$th
c8a0 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 3b 0a 20 20 20 20 24 74 is->constructorArgInit();.....$t
c8c0 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e 63 65 28 29 his->constructorCreateInstance()
c8e0 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 ;..........$this->constructSubje
c900 63 74 63 61 6c 6c 73 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 ctcalls();.....$this->constructC
c920 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 0a 20 20 70 75 62 6c ommonClosing();........}....publ
c940 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 20 20 24 ic.function.testHeader().{.....$
c960 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 this->testCase[].=."--TEST--";..
c980 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 63 6c 61 ...$this->testCase[].=."Test.cla
c9a0 73 73 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d ss.".$this->subject->getClassNam
c9c0 65 28 29 2e 22 20 6d 65 74 68 6f 64 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 e().".method.".$this->subject->g
c9e0 65 74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 61 72 67 etName()."().by.substituting.arg
ca00 75 6d 65 6e 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 ument.".$this->argumentNumber.".
ca20 77 69 74 68 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 with.".$this->variationData.".va
ca40 6c 75 65 73 2e 22 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 lues.";...}....public.function.s
ca60 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 ubjectCalls().{.....$this->testC
ca80 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c 6f 6f ase.=.gtCodeSnippet::append('loo
caa0 70 53 74 61 72 74 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20 20 2f pStart',.$this->testCase);...../
cac0 2f 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 6f /.Construct.the.argument.list.to
cae0 20 70 61 73 73 20 74 6f 20 74 68 65 20 6d 65 74 68 6f 64 20 62 65 69 6e 67 20 74 65 73 74 65 64 .pass.to.the.method.being.tested
cb00 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 65 78 70 6c 6f 64 65 28 22 2c 22 .....$argumentList.=.explode(","
cb20 2c 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4d 61 78 69 6d 75 6d 41 72 67 75 ,.$this->subject->getMaximumArgu
cb40 6d 65 6e 74 4c 69 73 74 28 29 29 3b 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 5b 24 mentList());.....$argumentList[$
cb60 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 20 5d 20 3d 20 22 5c 24 76 this->argumentNumber.-1.].=."\$v
cb80 61 72 20 22 3b 0a 20 20 20 20 24 6c 69 73 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 2c 20 22 2c 20 ar.";.....$list.=.implode(",.",.
cba0 24 61 72 67 75 6d 65 6e 74 4c 69 73 74 29 3b 0a 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 $argumentList);.......$this->tes
cbc0 74 43 61 73 65 5b 5d 20 3d 20 22 20 20 76 61 72 5f 64 75 6d 70 28 5c 24 63 6c 61 73 73 2d 3e 22 tCase[].=."..var_dump(\$class->"
cbe0 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e .$this->subject->getName()."(.".
cc00 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 $list.".).);";.....$this->testCa
cc20 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c 6f 6f 70 se.=.gtCodeSnippet::append('loop
cc40 43 6c 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20 20 7d 0a 0a Close',.$this->testCase);....}..
cc60 7d 0a 0a 3f 3e cf db 3a 79 f3 f5 44 85 37 b8 ef a6 60 5f 67 aa 44 bb 80 55 02 00 00 00 47 42 4d }..?>..:y..D.7...`_g.D..U....GBM
cc80 42 B