Doing so allows:
1. User running the tests no longer needs create database privilege.
2. Test database may be located in a non-default tablespace and generally
have site-specific options applied to it.
PHPBB3-11295
* p/ticket/10491:
[ticket/10491] Make recreate_database static.
[ticket/10491] Install board once per test run.
[ticket/10491] Move board installation into setup before class.
[ticket/10491] Set up functional tests sensibly.
This is how things used to be. Installing for each test class brings
3-4x performance penalty compared to installing once for the entire
test run. However, with a single installation for all tests an
individual test can see different data when it is invoked by itself
vs when it is executed as part of the entire test suite.
PHPBB3-10491
Users should not be deleted in tests that test user creation.
Tests should use unique user names to avoid collisions.
User deletion should use user_remove anyway.
PHPBB3-10972
Always add users, do not keep track of which users have been added.
The tests should know whether users they want exist or not.
Use more unique user names in tests for robustness.
Added some more assertions here and there.
PHPBB3-10972
PHPBB_FUNCTIONAL_URL goes into setup before class.
Drop PHPBB_FUNCTIONAL_URL check in board installation and
silent return if it is not set.
Take board installation out of constructor.
Install board in setup method.
PHPBB3-10491
The previous method would always leave a gap between the last value and the
new one due to how you have to update the sequence values. To remove gaps in
all situations, the options are to alter the USER_SEQUENCES table or just
drop the sequence and recreate it. The prior requires elevated priveleges
and the latter can break attached objects. Since we don't attach objects to
the sequences, we won't have any problems doing it for the tests.
PHPBB3-11219
If a value is provide for an auto_increment type of column, certain DBMSes
do not update their internal sequencers. If a row is inserted later, it can
be given an ID that is already in use, resulting in an error. The database
test cases now resynchronise the sequencers before the tests are run.
PHPBB3-11219
* p/ticket/11202-olympus:
[ticket/11202] Custom message does not make sense here, delete it.
[ticket/11202] Check response success before content assertions.
[ticket/11202] Add a heuristic function to check for response success.
The problem is, that we try to recreate the db and reconnect to it, while the
old connection is still hold. To resolve this, we just drop all tables and
recreate the tables instead of the hole db.
PHPBB3-11186
* Fyorl/ticket/10981:
[ticket/10981] Added check for PHP version before running composer
[ticket/10981] Modified travis to use composer with --dev
[ticket/10981] Removed setupBeforeClass
[ticket/10981] Modified functional framework to account for goutte changes
[ticket/10981] Added goutte via composer
* github-noxwizard/ticket/10678:
[ticket/10678] Typo and formatting
[ticket/10678] Add port handling for MSSQL tests
[ticket/10678] Move config changes to new location
[ticket/10678] Rename helper class file
[ticket/10678] Lowercase class name, adjust comment width
[ticket/10678] More formatting and docblocks
[ticket/10678] More formatting requests
[ticket/10678] Fix formatting
[ticket/10678] Add better support for Firebird, Oracle, and MSSQL
Conflicts:
tests/RUNNING_TESTS.txt