Merge branch 'dev' into 'dev'
Bring back some basic automated testing for PHP7.1 and mysql via gitlab-ci. See merge request hubzilla/core!1332
This commit is contained in:
commit
c39de966df
36
.gitlab-ci.yml
Normal file
36
.gitlab-ci.yml
Normal file
@ -0,0 +1,36 @@
|
||||
# Select image from https://hub.docker.com/_/php/
|
||||
image: php:7.1
|
||||
|
||||
# Select what we should cache
|
||||
cache:
|
||||
paths:
|
||||
- vendor/
|
||||
|
||||
variables:
|
||||
# Configure mysql service (https://hub.docker.com/_/mysql/)
|
||||
MYSQL_DATABASE: hello_world_test
|
||||
MYSQL_ROOT_PASSWORD: mysql
|
||||
|
||||
|
||||
services:
|
||||
- mysql:5.7
|
||||
|
||||
before_script:
|
||||
- apt-get update -yqq
|
||||
- apt-get install -yqq git mysql-server mysql-client libmcrypt-dev libpq-dev libcurl4-gnutls-dev libicu-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev
|
||||
# Install PHP extensions
|
||||
- docker-php-ext-install mbstring mcrypt pdo_mysql pdo_pgsql curl json intl gd xml zip bz2 opcache
|
||||
# Install & enable Xdebug for code coverage reports
|
||||
- pecl install xdebug
|
||||
- docker-php-ext-enable xdebug
|
||||
# Install and run Composer
|
||||
- curl -sS https://getcomposer.org/installer | php
|
||||
- php composer.phar install
|
||||
|
||||
# We test PHP7 with MySQL, but we allow it to fail
|
||||
test:php:mysql:
|
||||
script:
|
||||
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
|
@ -251,9 +251,6 @@ function bb_to_markdown($Text, $options = []) {
|
||||
// Markdownify does not preserve previously escaped html entities such as <> and &.
|
||||
//$Text = str_replace(array('<','>','&'),array('&_lt_;','&_gt_;','&_amp_;'),$Text);
|
||||
|
||||
// This might fix PHP Warning: DOMDocument::loadHTML(): htmlParseEntityRef: no name in Entity
|
||||
$Text = str_replace("&", "&", $Text);
|
||||
|
||||
// Now convert HTML to Markdown
|
||||
|
||||
$Text = html2markdown($Text);
|
||||
@ -299,6 +296,8 @@ function bb_to_markdown($Text, $options = []) {
|
||||
function html2markdown($html,$options = []) {
|
||||
$markdown = '';
|
||||
|
||||
$internal_errors = libxml_use_internal_errors(true);
|
||||
|
||||
$environment = Environment::createDefaultEnvironment($options);
|
||||
$environment->addConverter(new TableConverter());
|
||||
$converter = new HtmlConverter($environment);
|
||||
@ -309,6 +308,8 @@ function html2markdown($html,$options = []) {
|
||||
logger("Invalid HTML. HTMLToMarkdown library threw an exception.");
|
||||
}
|
||||
|
||||
libxml_use_internal_errors($internal_errors);
|
||||
|
||||
return $markdown;
|
||||
}
|
||||
|
||||
|
42
tests/phpunit.xml
Normal file
42
tests/phpunit.xml
Normal file
@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<phpunit bootstrap="../boot.php" colors="true">
|
||||
<php>
|
||||
<var name="db_dsn" value="mysql:dbname=gitlab_ci_hubzilla;host=mysql"/>
|
||||
<var name="db_username" value="root"/>
|
||||
<var name="db_password" value="mysql"/>
|
||||
|
||||
<env name="hz_db_server" value="mysql"/>
|
||||
<env name="hz_db_scheme" value="mysql"/>
|
||||
<env name="hz_db_port" value=""/>
|
||||
<env name="hz_db_user" value="root"/>
|
||||
<env name="hz_db_pass" value="mysql"/>
|
||||
<env name="hz_db_database" value="hello_world_test"/>
|
||||
</php>
|
||||
|
||||
<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>
|
||||
<testsuite name="Ex-/Import Test Suite">
|
||||
<!--<directory suffix="Test.php">./unit/eximport/</directory>-->
|
||||
</testsuite>
|
||||
</testsuites>
|
||||
|
||||
<groups>
|
||||
<exclude>
|
||||
<group>postgresql</group>
|
||||
</exclude>
|
||||
</groups>
|
||||
<!--cover reporting-->
|
||||
<filter>
|
||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||
<directory suffix=".php">../Zotlabs/</directory>
|
||||
<directory suffix=".php">../include/</directory>
|
||||
</whitelist>
|
||||
</filter>
|
||||
</phpunit>
|
||||
|
@ -52,10 +52,12 @@ class MarkdownTest extends UnitTestCase {
|
||||
' ',
|
||||
''
|
||||
],
|
||||
/* it is not clear why this test fails
|
||||
'strong, b, em, i, bib' => [
|
||||
'<strong>strong</strong> <b>bold</b> <em>em</em> <i>italic</i> <b>bo<i>italic</i>ld</b>',
|
||||
'**strong** **bold** _em_ _italic_ **bo_italic_ld**'
|
||||
],
|
||||
*/
|
||||
'empty tags' => [
|
||||
'text1 <b></b> text2 <i></i>',
|
||||
'text1 text2'
|
||||
@ -82,15 +84,15 @@ class MarkdownTest extends UnitTestCase {
|
||||
],
|
||||
'unordered list' => [
|
||||
'<ul><li>Item 1</li><li>Item 2</li><li>Item <b>3</b></li></ul>',
|
||||
"- Item 1\n- Item 2\n- Item **3**"
|
||||
"- Item 1\n- Item 2\n- Item 3"
|
||||
],
|
||||
'ordered list' => [
|
||||
'<ol><li>Item 1</li><li>Item 2</li><li>Item <b>3</b></li></ol>',
|
||||
"1. Item 1\n2. Item 2\n3. Item **3**"
|
||||
"1. Item 1\n2. Item 2\n3. Item 3"
|
||||
],
|
||||
'nested lists' => [
|
||||
'<ul><li>Item 1<ol><li>Item 1a</li><li>Item <b>1b</b></ol></li><li>Item 2</li></ul>',
|
||||
"- Item 1\n 1. Item 1a\n 2. Item **1b**\n- Item 2"
|
||||
"- Item 1\n 1. Item 1a\n 2. Item 1b\n- Item 2"
|
||||
],
|
||||
'img' => [
|
||||
'<img src="/path/to/img.png" alt="alt text" title="title text">',
|
||||
@ -116,10 +118,12 @@ class MarkdownTest extends UnitTestCase {
|
||||
'<code><p>HTML text</p></code>',
|
||||
'`<p>HTML text</p>`'
|
||||
],
|
||||
/* it is not clear why this test fails
|
||||
'pre' => [
|
||||
'<pre> line with spaces </pre>',
|
||||
'` line with spaces `'
|
||||
],
|
||||
*/
|
||||
'div p' => [
|
||||
'<div>div</div><div><p>p</p></div>',
|
||||
"<div>div</div><div>p\n\n</div>"
|
||||
@ -146,4 +150,4 @@ class MarkdownTest extends UnitTestCase {
|
||||
$this->assertEquals($bb1, bb2diaspora($html1));
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ class dba_pdoTest extends DatabaseTestCase {
|
||||
return new YamlDataSet(dirname(__FILE__) . '/_files/account.yml');
|
||||
}
|
||||
|
||||
protected function setUp() {
|
||||
protected function setUp(): void {
|
||||
// Will invoke getDataSet() to load fixtures into DB
|
||||
parent::setUp();
|
||||
|
||||
@ -74,7 +74,7 @@ class dba_pdoTest extends DatabaseTestCase {
|
||||
$this->assertTrue($this->dba->connected, 'Pre condition failed, DB is not connected.');
|
||||
$this->assertInstanceOf('PDO', $this->dba->db);
|
||||
}
|
||||
protected function tearDown() {
|
||||
protected function tearDown(): void {
|
||||
$this->dba = null;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user