wiki.techinc.nl/tests/phpunit/includes/installer/OracleInstallerTest.php
freakolowsky ffe6e12a8a Fixed EZConnect string regex in OracleInstaller class.
The Oracle connect string was valid only if it contained alphanumerics,
underscore and dot. Some new schmemes makes uses of slashes and
EZConnect has the concept of server types (pooled, dedicated, shared)
which we now validate.

The long regex is now in OracleInstaller::checkConnectStringFormat()
(flagged with @since 1.22). The patch provides a bunch of very basic
tests to test out the regex.

Change-Id: Ie3a0af9801bfdbc9129298be07e1676145a1607a
2013-05-31 16:03:58 +02:00

47 lines
1.6 KiB
PHP

<?php
/**
* Tests for OracleInstaller
*
* @group Database
* @group Installer
*/
class OracleInstallerTest extends MediaWikiTestCase {
/**
* @dataProvider provideOracleConnectStrings
*/
function testCheckConnectStringFormat( $expected, $connectString, $msg = '' ) {
$validity = $expected ? 'should be valid' : 'should NOT be valid';
$msg = "'$connectString' ($msg) $validity.";
$this->assertEquals( $expected,
OracleInstaller::checkConnectStringFormat( $connectString ),
$msg
);
}
/**
* Provider to test OracleInstaller::checkConnectStringFormat()
*/
function provideOracleConnectStrings() {
// expected result, connectString[, message]
return array(
array( true, 'simple_01', 'Simple TNS name' ),
array( true, 'simple_01.world', 'TNS name with domain' ),
array( true, 'simple_01.domain.net', 'TNS name with domain' ),
array( true, 'host123', 'Host only' ),
array( true, 'host123.domain.net', 'FQDN only' ),
array( true, '//host123.domain.net', 'FQDN URL only' ),
array( true, '123.223.213.132', 'Host IP only' ),
array( true, 'host:1521', 'Host and port' ),
array( true, 'host:1521/service', 'Host, port and service' ),
array( true, 'host:1521/service:shared', 'Host, port, service and shared server type' ),
array( true, 'host:1521/service:dedicated', 'Host, port, service and dedicated server type' ),
array( true, 'host:1521/service:pooled', 'Host, port, service and pooled server type' ),
array( true, 'host:1521/service:shared/instance1', 'Host, port, service, server type and instance' ),
array( true, 'host:1521//instance1', 'Host, port and instance' ),
);
}
}