Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
hubzilla
core
Commits
5e1addc7
Commit
5e1addc7
authored
Nov 26, 2020
by
Mario
Browse files
revert folder renaming
parent
138beeac
Pipeline
#366495
failed with stage
in 3 minutes and 40 seconds
Changes
47
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Tests/Unit/DatabaseTestCase.php
deleted
100644 → 0
View file @
138beeac
<?php
/* Copyright (c) 2017 Hubzilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
namespace
Zotlabs\Tests\Unit
;
use
PHPUnit\DbUnit\TestCaseTrait
;
use
PHPUnit\Framework\TestCase
;
/**
* @brief Base class for our Database Unit Tests.
*
* @warning Never run these tests against a production database, because all
* tables will get truncated and there is no way to recover without a backup.
*
* @author Klaus Weidenbach
*/
abstract
class
DatabaseTestCase
extends
TestCase
{
use
TestCaseTrait
;
/**
* Only instantiate PDO once for test clean-up/fixture load.
*
* @var \PDO
*/
static
private
$pdo
=
null
;
/**
* Only instantiate \PHPUnit\DbUnit\Database\Connection once per test.
*
* @var \PHPUnit\DbUnit\Database\Connection
*/
private
$conn
=
null
;
final
public
function
getConnection
()
{
if
(
$this
->
conn
===
null
)
{
if
(
self
::
$pdo
===
null
)
{
$dsn
=
\
getenv
(
'hz_db_scheme'
)
.
':host='
.
\
getenv
(
'hz_db_server'
)
.
';port='
.
\
getenv
(
'hz_db_port'
)
.
';dbname='
.
\
getenv
(
'hz_db_database'
);
self
::
$pdo
=
new
\
PDO
(
$dsn
,
\
getenv
(
'hz_db_user'
),
\
getenv
(
'hz_db_pass'
));
}
$this
->
conn
=
$this
->
createDefaultDBConnection
(
self
::
$pdo
,
\
getenv
(
'hz_db_database'
));
}
return
$this
->
conn
;
}
}
Tests/Unit/includes/dba/DBATest.php
deleted
100644 → 0
View file @
138beeac
<?php
/*
* Copyright (c) 2017 Hubzilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
namespace
Zotlabs\Tests\Unit\includes
;
use
Zotlabs\Tests\Unit\UnitTestCase
;
// required because of process isolation and no autoloading
require_once
'include/dba/dba_driver.php'
;
/**
* @brief Unit Test case for include/dba/DBA.php file.
*
* This test needs process isolation because of static \DBA.
* @runTestsInSeparateProcesses
*/
class
DBATest
extends
UnitTestCase
{
public
function
testDbaFactoryMysql
()
{
$this
->
assertNull
(
\
DBA
::
$dba
);
$ret
=
\
DBA
::
dba_factory
(
'server'
,
'port'
,
'user'
,
'pass'
,
'db'
,
'0'
);
$this
->
assertInstanceOf
(
'dba_pdo'
,
$ret
);
$this
->
assertFalse
(
$ret
->
connected
);
$this
->
assertSame
(
'mysql'
,
\
DBA
::
$scheme
);
$this
->
assertSame
(
'schema_mysql.sql'
,
\
DBA
::
$install_script
);
$this
->
assertSame
(
'0001-01-01 00:00:00'
,
\
DBA
::
$null_date
);
$this
->
assertSame
(
'UTC_TIMESTAMP()'
,
\
DBA
::
$utc_now
);
$this
->
assertSame
(
'`'
,
\
DBA
::
$tquot
);
}
public
function
testDbaFactoryPostgresql
()
{
$this
->
assertNull
(
\
DBA
::
$dba
);
$ret
=
\
DBA
::
dba_factory
(
'server'
,
'port'
,
'user'
,
'pass'
,
'db'
,
'1'
);
$this
->
assertInstanceOf
(
'dba_pdo'
,
$ret
);
$this
->
assertFalse
(
$ret
->
connected
);
$this
->
assertSame
(
'pgsql'
,
\
DBA
::
$scheme
);
$this
->
assertSame
(
'schema_postgres.sql'
,
\
DBA
::
$install_script
);
$this
->
assertSame
(
'0001-01-01 00:00:00'
,
\
DBA
::
$null_date
);
$this
->
assertSame
(
"now() at time zone 'UTC'"
,
\
DBA
::
$utc_now
);
$this
->
assertSame
(
'"'
,
\
DBA
::
$tquot
);
}
}
Tests/Unit/includes/dba/dba_pdoTest.php
deleted
100644 → 0
View file @
138beeac
<?php
/*
* Copyright (c) 2017 Hubzilla
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
namespace
Zotlabs\Tests\Unit\includes
;
use
Zotlabs\Tests\Unit\DatabaseTestCase
;
use
PHPUnit\DbUnit\TestCaseTrait
;
use
PHPUnit\DbUnit\DataSet\YamlDataSet
;
require_once
'include/dba/dba_pdo.php'
;
/**
* @brief Unit Test case for include/dba/dba_pdo.php file.
*
* Some very basic tests to see if our database layer can connect to a real
* database.
*/
class
dba_pdoTest
extends
DatabaseTestCase
{
use
TestCaseTrait
;
/**
* @var \dba_driver
*/
protected
$dba
;
/**
* Set initial state of the database before each test is executed.
* Load database fixtures.
*
* @return \PHPUnit\DbUnit\DataSet\IDataSet
*/
public
function
getDataSet
()
{
return
new
YamlDataSet
(
dirname
(
__FILE__
)
.
'/_files/account.yml'
);
}
protected
function
setUp
():
void
{
// Will invoke getDataSet() to load fixtures into DB
parent
::
setUp
();
$this
->
dba
=
new
\
dba_pdo
(
\
getenv
(
'hz_db_server'
),
\
getenv
(
'hz_db_scheme'
),
\
getenv
(
'hz_db_port'
),
\
getenv
(
'hz_db_user'
),
\
getenv
(
'hz_db_pass'
),
\
getenv
(
'hz_db_database'
)
);
}
protected
function
assertPreConditions
()
{
$this
->
assertSame
(
'pdo'
,
$this
->
dba
->
getdriver
(),
"Driver is expected to be 'pdo'."
);
$this
->
assertInstanceOf
(
'dba_driver'
,
$this
->
dba
);
$this
->
assertTrue
(
$this
->
dba
->
connected
,
'Pre condition failed, DB is not connected.'
);
$this
->
assertInstanceOf
(
'PDO'
,
$this
->
dba
->
db
);
}
protected
function
tearDown
():
void
{
$this
->
dba
=
null
;
}
/**
* @group mysql
*/
public
function
testQuoteintervalOnMysql
()
{
$this
->
assertSame
(
'value'
,
$this
->
dba
->
quote_interval
(
'value'
));
}
/**
* @group postgresql
*/
public
function
testQuoteintervalOnPostgresql
()
{
$this
->
assertSame
(
"'value'"
,
$this
->
dba
->
quote_interval
(
'value'
));
}
/**
* @group mysql
*/
public
function
testGenerateMysqlConcatSql
()
{
$this
->
assertSame
(
'GROUP_CONCAT(DISTINCT field SEPARATOR \';\')'
,
$this
->
dba
->
concat
(
'field'
,
';'
));
$this
->
assertSame
(
'GROUP_CONCAT(DISTINCT field2 SEPARATOR \' \')'
,
$this
->
dba
->
concat
(
'field2'
,
' '
));
}
/**
* @group postgresql
*/
public
function
testGeneratePostgresqlConcatSql
()
{
$this
->
assertSame
(
'string_agg(field,\';\')'
,
$this
->
dba
->
concat
(
'field'
,
';'
));
$this
->
assertSame
(
'string_agg(field2,\' \')'
,
$this
->
dba
->
concat
(
'field2'
,
' '
));
}
public
function
testConnectToSqlServer
()
{
// connect() is done in dba_pdo constructor which is called in setUp()
$this
->
assertTrue
(
$this
->
dba
->
connected
);
}
/**
* @depends testConnectToSqlServer
*/
public
function
testCloseSqlServerConnection
()
{
$this
->
dba
->
close
();
$this
->
assertNull
(
$this
->
dba
->
db
);
$this
->
assertFalse
(
$this
->
dba
->
connected
);
}
/**
* @depends testConnectToSqlServer
*/
public
function
testSelectQueryShouldReturnArray
()
{
$ret
=
$this
->
dba
->
q
(
'SELECT * FROM account'
);
$this
->
assertTrue
(
is_array
(
$ret
));
}
/**
* @depends testConnectToSqlServer
*/
public
function
testInsertQueryShouldReturnPdostatement
()
{
// Fixture account.yml adds two entries to account table
$this
->
assertEquals
(
2
,
$this
->
getConnection
()
->
getRowCount
(
'account'
),
'Pre-Condition'
);
$ret
=
$this
->
dba
->
q
(
'INSERT INTO account
(account_id, account_email, account_language)
VALUES (100, \'insert@example.com\', \'de\')
'
);
$this
->
assertInstanceOf
(
'PDOStatement'
,
$ret
);
$this
->
assertEquals
(
3
,
$this
->
getConnection
()
->
getRowCount
(
'account'
),
'Inserting failed'
);
}
public
function
testConnectToWrongSqlServer
()
{
$nodba
=
new
\
dba_pdo
(
'wrongserver'
,
\
getenv
(
'hz_db_scheme'
),
\
getenv
(
'hz_db_port'
),
\
getenv
(
'hz_db_user'
),
\
getenv
(
'hz_db_pass'
),
\
getenv
(
'hz_db_database'
)
);
$this
->
assertSame
(
'pdo'
,
$nodba
->
getdriver
());
$this
->
assertInstanceOf
(
'dba_pdo'
,
$nodba
);
$this
->
assertFalse
(
$nodba
->
connected
);
$this
->
assertNull
(
$nodba
->
db
);
$this
->
assertFalse
(
$nodba
->
q
(
'SELECT * FROM account'
));
}
/**
* @depends testConnectToSqlServer
*/
public
function
testSelectQueryToNonExistentTableShouldReturnFalse
()
{
$ret
=
$this
->
dba
->
q
(
'SELECT * FROM non_existent_table'
);
$this
->
assertFalse
(
$ret
);
}
/**
* @depends testConnectToSqlServer
*/
public
function
testInsertQueryToNonExistentTableShouldReturnEmptyArray
()
{
$ret
=
$this
->
dba
->
q
(
'INSERT INTO non_existent_table
(account_email, account_language)
VALUES (\'email@example.com\', \'en\')
'
);
$this
->
assertNotInstanceOf
(
'PDOStatement'
,
$ret
);
$this
->
isEmpty
(
$ret
);
}
}
Tests/phpunit-pgsql.xml
deleted
100644 → 0
View file @
138beeac
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"https://schema.phpunit.de/7.5/phpunit.xsd"
bootstrap=
"../boot.php"
forceCoversAnnotation=
"false"
beStrictAboutCoversAnnotation=
"true"
beStrictAboutOutputDuringTests=
"true"
beStrictAboutTodoAnnotatedTests=
"true"
verbose=
"true"
>
<testsuites>
<testsuite
name=
"Hubzilla default Test Suite"
>
<directory
suffix=
"Test.php"
>
./unit/
</directory>
</testsuite>
<testsuite
name=
"API Test Suite"
>
<directory
suffix=
"Test.php"
prefix=
"API"
>
./unit/
</directory>
</testsuite>
</testsuites>
<groups>
<exclude>
<group>
mysql
</group>
</exclude>
</groups>
<!--coverage reporting-->
<filter>
<whitelist
processUncoveredFilesFromWhitelist=
"true"
>
<directory
suffix=
".php"
>
../Zotlabs/
</directory>
<directory
suffix=
".php"
>
../include/
</directory>
</whitelist>
</filter>
<logging>
<log
type=
"junit"
target=
"./results/junit.xml"
/>
<!--<log type="coverage-clover" target="./results/coverage-clover.xml"/>-->
<log
type=
"coverage-html"
target=
"./results/coverage-report/"
lowUpperBound=
"35"
highLowerBound=
"70"
/>
<!--<log type="testdox-text" target="./results/testdox.txt"/>-->
<log
type=
"testdox-html"
target=
"./results/testdox.html"
/>
</logging>
<php>
<!-- Default test database config, only used if no environment variables
with same names are set.
!!! Never run against a real database, it will truncate all tables -->
<env
name=
"hz_db_server"
value=
"postgres"
/>
<env
name=
"hz_db_scheme"
value=
"pgsql"
/>
<env
name=
"hz_db_port"
value=
"5432"
/>
<env
name=
"hz_db_user"
value=
"ci-user"
/>
<env
name=
"hz_db_pass"
value=
"ci-pass"
/>
<env
name=
"hz_db_database"
value=
"ci-db"
/>
</php>
</phpunit>
T
ests/README.md
→
t
ests/README.md
View file @
5e1addc7
File moved
T
ests/acceptance/behat.yml
→
t
ests/acceptance/behat.yml
View file @
5e1addc7
File moved
T
ests/acceptance/features/bootstrap/AdminContext.php
→
t
ests/acceptance/features/bootstrap/AdminContext.php
View file @
5e1addc7
File moved
T
ests/acceptance/features/bootstrap/ApiContext.php
→
t
ests/acceptance/features/bootstrap/ApiContext.php
View file @
5e1addc7
File moved
T
ests/acceptance/features/bootstrap/FeatureContext.php
→
t
ests/acceptance/features/bootstrap/FeatureContext.php
View file @
5e1addc7
File moved
T
ests/acceptance/features/login_local.feature
→
t
ests/acceptance/features/login_local.feature
View file @
5e1addc7
File moved
T
ests/infection.json.dist
→
t
ests/infection.json.dist
View file @
5e1addc7
File moved
tests/phpunit-pgsql.xml
0 → 100644
View file @
5e1addc7
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation=
"https://schema.phpunit.de/9.3/phpunit.xsd"
bootstrap=
"../boot.php"
forceCoversAnnotation=
"false"
beStrictAboutCoversAnnotation=
"true"
beStrictAboutOutputDuringTests=
"true"
beStrictAboutTodoAnnotatedTests=
"true"
verbose=
"true"
>
<coverage
processUncoveredFiles=
"true"
>
<include>
<directory
suffix=
".php"
>
../Zotlabs/
</directory>
<directory
suffix=
".php"
>
../include/
</directory>
</include>
<report>
<html
outputDirectory=
"./results/coverage-report/"
lowUpperBound=
"35"
highLowerBound=
"70"
/>
</report>
</coverage>
<testsuites>
<testsuite
name=
"Hubzilla default Test Suite"
>
<directory
suffix=
"Test.php"
>
./unit/
</directory>
</testsuite>
<testsuite
name=
"API Test Suite"
>
<directory
suffix=
"Test.php"
prefix=
"API"
>
./unit/
</directory>
</testsuite>
</testsuites>
<groups>
<exclude>
<group>
mysql
</group>
</exclude>
</groups>
<!--coverage reporting-->
<logging>
<junit
outputFile=
"./results/junit.xml"
/>
<!--<log type="coverage-clover" target="./results/coverage-clover.xml"/>-->
<!--<log type="testdox-text" target="./results/testdox.txt"/>-->
<testdoxHtml
outputFile=
"./results/testdox.html"
/>
</logging>
<php>
<!-- Default test database config, only used if no environment variables
with same names are set.
!!! Never run against a real database, it will truncate all tables -->
<env
name=
"hz_db_server"
value=
"postgres"
/>
<env
name=
"hz_db_scheme"
value=
"pgsql"
/>
<env
name=
"hz_db_port"
value=
"5432"
/>
<env
name=
"hz_db_user"
value=
"ci-user"
/>
<env
name=
"hz_db_pass"
value=
"ci-pass"
/>
<env
name=
"hz_db_database"
value=
"ci-db"
/>
</php>
</phpunit>
T
ests/phpunit.xml
→
t
ests/phpunit.xml
View file @
5e1addc7
File moved
T
ests/phpunit.xml.dist
→
t
ests/phpunit.xml.dist
View file @
5e1addc7
File moved
T
ests/travis/gen_apidocs.sh
→
t
ests/travis/gen_apidocs.sh
View file @
5e1addc7
File moved
T
ests/travis/prepare.sh
→
t
ests/travis/prepare.sh
View file @
5e1addc7
File moved
T
ests/travis/prepare_mysql.sh
→
t
ests/travis/prepare_mysql.sh
View file @
5e1addc7
File moved
T
ests/travis/prepare_pgsql.sh
→
t
ests/travis/prepare_pgsql.sh
View file @
5e1addc7
File moved
T
ests/
U
nit/Access/AccessListTest.php
→
t
ests/
u
nit/Access/AccessListTest.php
View file @
5e1addc7
File moved
T
ests/
U
nit/Access/PermissionLimitsTest.php
→
t
ests/
u
nit/Access/PermissionLimitsTest.php
View file @
5e1addc7
File moved
Prev
1
2
3
Next
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment