]*id="password"[^>]*>#',
'$content',
@@ -159,14 +159,14 @@ new ConfigurationTestGenerator(array(
'setting' => 'page',
'tests' => array(
array(
- 'type' => 'RegExp',
+ 'type' => 'MatchesRegularExpression',
'args' => array(
'#]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
'$content',
'outputs "page" stylesheet correctly',
),
), array(
- 'type' => 'NotRegExp',
+ 'type' => 'DoesNotMatchRegularExpression',
'args' => array(
'#]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
'$content',
@@ -179,14 +179,14 @@ new ConfigurationTestGenerator(array(
'setting' => 'bootstrap',
'tests' => array(
array(
- 'type' => 'NotRegExp',
+ 'type' => 'DoesNotMatchRegularExpression',
'args' => array(
'#]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/privatebin\.css\\?\d[\d\.]+\d+"[^>]*/>#',
'$content',
'removes "page" stylesheet correctly',
),
), array(
- 'type' => 'RegExp',
+ 'type' => 'MatchesRegularExpression',
'args' => array(
'#]+type="text/css"[^>]+rel="stylesheet"[^>]+href="css/bootstrap/bootstrap-\d[\d\.]+\d\.css"[^>]*/>#',
'$content',
@@ -361,7 +361,7 @@ class ConfigurationTestGenerator
}
// skip if not all test conditions are met
if (array_key_exists('conditions', $test)) {
- while (list($path, $setting) = each($test['conditions'])) {
+ foreach ($test['conditions'] as $path => $setting) {
if ($path == 'steps' && !in_array($step, $setting)) {
continue 2;
} elseif ($path != 'steps') {
@@ -591,8 +591,9 @@ EOT;
return $this->_configurations;
}
echo "generateConfigurations: iteration $this->_iterationCount", PHP_EOL;
- $continue = list($path, $settings) = each($this->_options);
- if ($continue === false) {
+ $path = key($this->_options);
+ $settings = current($this->_options);
+ if (next($this->_options) === false) {
return $this->_configurations;
}
list($section, $option) = explode('/', $path);
diff --git a/tst/README.md b/doc/Running Unit Tests.md
similarity index 90%
rename from tst/README.md
rename to doc/Running Unit Tests.md
index db310e9b..95078258 100644
--- a/tst/README.md
+++ b/doc/Running Unit Tests.md
@@ -28,11 +28,6 @@ docker run --rm --read-only -v ~/PrivateBin:/srv:ro privatebin/unit-testing phpu
docker run --rm --read-only -v ~/PrivateBin:/srv:ro privatebin/unit-testing mocha
```
-We also provide a Janitor image that includes the Cloud9 and Theia WebIDEs as
-well as the integrated unit testing utilities. See our [docker wiki
-page](https://github.com/PrivateBin/PrivateBin/wiki/Docker#janitor-image-with-cloud9-and-theia-webide-janitortechnologyprivatebin)
-for further details on this.
-
## Running PHP Unit Tests
In order to run these tests, you will need to install the following packages
@@ -61,18 +56,15 @@ configurations defined in its constructor, it generates the unit test file
of these configurations and tests for (most of the) valid combinations. Some of
combinations can't be tested with this method, i.e. a valid option combined with
an invalid one. Other very specific test cases (i.e. to trigger multiple errors)
-are covered in `tst/PrivateBinTest.php`. Here is how to generate the
+are covered in `tst/ControllerTest.php`. Here is how to generate the
configuration test and run it:
```console
$ cd PrivateBin/tst
-$ php ConfigurationTestGenerator.php
+$ ../bin/configuration-test-generator
$ phpunit ConfigurationCombinationsTest.php
```
-Note that it can take an hour or longer to run the several thousand tests.
-
-
## Running JavaScript Unit Tests
In order to run these tests, you will need to install the following packages
@@ -134,7 +126,7 @@ associated random number generator (RNG) state, so you can reproduce it easily:
1 failing
1) Helper getCookie returns the requested cookie:
- Error: Failed after 30 tests and 11 shrinks. rngState: 88caf85079d32e416b; Counterexample: ["{", "9", "9", "YD8%fT"]; [" ", "_|K:"];
+ Error: Failed after 30 tests and 11 shrinks. rngState: 88caf85079d32e416b; Counterexample: ["{", "9", "9", "YD8%fT"]; [" ", "_|K:"];
[...]
```