remove a bunch of obsolete files

master
Andrew Dolgov 3 years ago
parent f4945b1ba1
commit 1aeeed930a
  1. 44
      .gitlab-ci.yml
  2. 256
      tests/ApiTest.php
  3. 5
      utils/gitlab-ci/check-schema.sh
  4. 207
      utils/gitlab-ci/config-template.php
  5. 81
      utils/gitlab-ci/nginx-default
  6. 5
      utils/gitlab-ci/php-lint.sh
  7. 20
      utils/gitlab-ci/phpmd-ruleset.xml
  8. 8
      utils/gitlab-ci/phpmd.sh

@ -1,44 +0,0 @@
phpmd:
image: php:5.6
when: manual
script:
- sh utils/gitlab-ci/php-lint.sh
- curl -o /usr/bin/phpmd -L http://static.phpmd.org/php/2.6.0/phpmd.phar
- chmod +x /usr/bin/phpmd
- sh utils/gitlab-ci/phpmd.sh
schema:
image: fox/selenium-ci
when: manual
script:
- /etc/init.d/postgresql start
- /usr/local/sbin/init-database.sh
- sh ./utils/gitlab-ci/check-schema.sh
phpunit_basic:
image: fox/selenium-ci
when: manual
script:
- /etc/init.d/postgresql start
- /usr/local/sbin/init-database.sh
- sh ./utils/gitlab-ci/check-schema.sh
- cp utils/gitlab-ci/config-template.php config.php
- su -s /bin/bash www-data -c "php ./update.php --debug-feed 1"
- wget -O /usr/bin/phpunit https://phar.phpunit.de/phpunit-5.7.phar
- chmod +x /usr/bin/phpunit
- phpunit tests/*.php
phpunit_functional:
image: fox/selenium-ci
when: manual
script:
- /etc/init.d/postgresql start
- /etc/init.d/nginx start
- /etc/init.d/php5-fpm start
- /usr/local/sbin/init-database.sh
- sh ./utils/gitlab-ci/check-schema.sh
- ln -s `pwd` ../../tt-rss
- cp utils/gitlab-ci/config-template.php config.php
- chmod -R 777 cache lock feed-icons
- /usr/local/sbin/init-selenium.sh
- phpunit tests/functional/*.php

@ -1,256 +0,0 @@
<?php
use PHPUnit\Framework\TestCase;
set_include_path(dirname(__DIR__) ."/include" . PATH_SEPARATOR .
dirname(__DIR__) . PATH_SEPARATOR .
get_include_path());
require_once "autoload.php";
final class ApiTest extends TestCase {
public function __construct() {
init_plugins();
initialize_user_prefs(1);
set_pref('ENABLE_API_ACCESS', true, 1);
parent::__construct();
}
public function apiCall($args, $method) {
$_REQUEST = $args;
$api = new API($args);
ob_start();
$api->$method();
$rv = json_decode(ob_get_contents(), true);
ob_end_clean();
$this->assertEquals(API::STATUS_OK, $rv['status']);
return $rv;
}
public function testBasicAuth() {
$this->assertEquals(true,
authenticate_user("admin", "password"));
}
public function testVersion() {
$ret = $this->apiCall([], "getVersion");
$this->assertStringStartsWith(
VERSION_STATIC,
$ret['content']['version']);
}
public function testLogin() {
$ret = $this->apiCall(["op" => "login",
"user" => "admin",
"password" => "password"], "login");
$this->assertNotEmpty($ret['content']['session_id']);
}
public function testGetUnread() {
$this->testLogin();
$ret = $this->apiCall([],"getUnread");
$this->assertNotEmpty($ret['content']['unread']);
}
public function testGetFeeds() {
$this->testLogin();
$ret = $this->apiCall([], "getFeeds");
$this->assertInternalType('array', $ret['content']);
$this->assertEquals("http://tt-rss.org/forum/rss.php",
$ret['content'][0]['feed_url']);
}
public function testGetCategories() {
$this->testLogin();
$ret = $this->apiCall([], "getCategories");
$this->assertInternalType('array', $ret['content']);
$this->assertGreaterThanOrEqual(2, sizeof($ret['content']));
foreach ($ret['content'] as $cat) {
$this->assertNotEmpty($cat['title']);
$this->assertNotNull($cat['id']);
$this->assertGreaterThanOrEqual(0, $cat['unread']);
$this->assertContains($cat['title'],
['Special', 'Labels', 'Uncategorized']);
}
}
public function testGetHeadlines() {
$this->testLogin();
$ret = $this->apiCall(['feed_id' => -4, 'view_mode' => 'adaptive'], "getHeadlines");
$this->assertInternalType('array', $ret['content']);
foreach ($ret['content'] as $hl) {
$this->assertInternalType('array', $hl);
$this->assertNotEmpty($hl['guid']);
$this->assertNotEmpty($hl['title']);
$this->assertNotEmpty($hl['link']);
}
$ret = $this->apiCall(['feed_id' => 1, 'view_mode' => 'all_articles'], "getHeadlines");
$this->assertInternalType('array', $ret['content']);
foreach ($ret['content'] as $hl) {
$this->assertInternalType('array', $hl);
$this->assertNotEmpty($hl['guid']);
$this->assertNotEmpty($hl['title']);
$this->assertNotEmpty($hl['link']);
}
}
public function testArticle() {
$this->testLogin();
$ret = $this->apiCall(['feed_id' => -4], "getHeadlines");
$this->assertInternalType('array', $ret['content'][0]);
$article_id = $ret['content'][0]['id'];
$title = $ret['content'][0]['title'];
$ret = $this->apiCall(['article_id' => $article_id], "getArticle");
$this->assertInternalType('array', $ret['content']);
$this->assertNotEmpty($ret['content'][0]['content']);
$this->assertEquals($title, $ret['content'][0]['title']);
}
public function testCounters() {
$this->testLogin();
$ret = $this->apiCall(['output_mode' => 'flc'], "getCounters");
$this->assertInternalType('array', $ret['content']);
foreach ($ret['content'] as $ctr) {
$this->assertInternalType('array', $ctr);
$this->assertNotNull($ctr['id']);
$this->assertGreaterThanOrEqual(0, $ctr['counter']);
}
}
public function testGetConfig() {
$this->testLogin();
$ret = $this->apiCall([], "getConfig");
$this->assertInternalType('array', $ret['content']);
foreach ($ret['content'] as $k => $v) {
$this->assertInternalType('string', $k);
$this->assertNotEmpty($k);
}
}
public function testBasicPrefs() {
$this->testLogin();
$ret = $this->apiCall(['pref_name' => 'ENABLE_API_ACCESS'], "getPref");
$this->assertEquals(1, $ret['content']['value']);
set_pref('ENABLE_API_ACCESS', false, 1);
$ret = $this->apiCall(['pref_name' => 'ENABLE_API_ACCESS'], "getPref");
$this->assertEquals(0, $ret['content']['value']);
set_pref('ENABLE_API_ACCESS', true, 1);
$ret = $this->apiCall(['pref_name' => 'ENABLE_API_ACCESS'], "getPref");
$this->assertEquals(1, $ret['content']['value']);
}
public function testFeedTree() {
$this->testLogin();
$ret = $this->apiCall([], "getFeedTree");
$this->assertInternalType('array', $ret['content']);
// root
foreach ($ret['content'] as $tr) {
$this->assertInternalType('array', $tr);
$this->assertInternalType('array', $tr['items']);
// cats
foreach ($tr['items'] as $cr) {
$this->assertInternalType('array', $cr['items']);
$this->assertNotEmpty($cr['id']);
$this->assertNotEmpty($cr['name']);
// feeds
foreach ($cr['items'] as $fr) {
$this->assertNotEmpty($fr['id']);
$this->assertNotEmpty($fr['name']);
}
}
}
}
public function testLabels() {
// create label
Labels::create('Test', '', '', 1);
$this->testLogin();
$ret = $this->apiCall([], "getLabels");
$this->assertInternalType('array', $ret['content']);
$this->assertEquals('Test', $ret['content'][0]['caption']);
$label_feed_id = $ret['content'][0]['id'];
$label_id = Labels::feed_to_label_id($label_feed_id);
$this->assertLessThan(0, $label_feed_id);
$this->assertGreaterThan(0, $label_id);
// assign/remove label to article
$ret = $this->apiCall(['feed_id' => -4, 'view_mode' => 'adaptive'], "getHeadlines");
$this->assertInternalType('array', $ret['content'][0]);
$article_id = $ret['content'][0]['id'];
$ret = $this->apiCall(['article_ids' => $article_id,
'label_id' => $label_feed_id, "assign" => "true"],
"setArticleLabel");
$ret = $this->apiCall(['article_id' => $article_id], "getArticle");
$this->assertContains($label_feed_id, $ret['content'][0]['labels'][0]);
$ret = $this->apiCall(['article_ids' => $article_id,
'label_id' => $label_feed_id, "assign" => "false"],
"setArticleLabel");
$ret = $this->apiCall(['article_id' => $article_id], "getArticle");
$this->assertEmpty($ret['content'][0]['labels']);
// clean up and check
Labels::remove($label_id, 1);
$ret = $this->apiCall([], "getLabels");
$this->assertEmpty($ret['content']);
}
}

@ -1,5 +0,0 @@
#!/bin/sh
export PGPASSWORD=test
psql -h localhost -q -U test test < schema/ttrss_schema_pgsql.sql

@ -1,207 +0,0 @@
<?php
// *******************************************
// *** Database configuration (important!) ***
// *******************************************
define('DB_TYPE', "pgsql"); // or mysql
define('DB_HOST', "localhost");
define('DB_USER', "test");
define('DB_NAME', "test");
define('DB_PASS', "test");
define('DB_PORT', ''); // usually 5432 for PostgreSQL, 3306 for MySQL
define('MYSQL_CHARSET', 'UTF8');
// Connection charset for MySQL. If you have a legacy database and/or experience
// garbage unicode characters with this option, try setting it to a blank string.
// ***********************************
// *** Basic settings (important!) ***
// ***********************************
define('SELF_URL_PATH', 'http://localhost/tt-rss/');
// Full URL of your tt-rss installation. This should be set to the
// location of tt-rss directory, e.g. http://example.org/tt-rss/
// You need to set this option correctly otherwise several features
// including PUSH, bookmarklets and browser integration will not work properly.
define('FEED_CRYPT_KEY', '');
// WARNING: mcrypt is deprecated in php 7.1. This directive exists for backwards
// compatibility with existing installs, new passwords are NOT going to be encrypted.
// Use update.php --decrypt-feeds to decrypt existing passwords in the database while
// mcrypt is still available.
// Key used for encryption of passwords for password-protected feeds
// in the database. A string of 24 random characters. If left blank, encryption
// is not used. Requires mcrypt functions.
// Warning: changing this key will make your stored feed passwords impossible
// to decrypt.
define('SINGLE_USER_MODE', false);
// Operate in single user mode, disables all functionality related to
// multiple users and authentication. Enabling this assumes you have
// your tt-rss directory protected by other means (e.g. http auth).
define('SIMPLE_UPDATE_MODE', false);
// Enables fallback update mode where tt-rss tries to update feeds in
// background while tt-rss is open in your browser.
// If you don't have a lot of feeds and don't want to or can't run
// background processes while not running tt-rss, this method is generally
// viable to keep your feeds up to date.
// Still, there are more robust (and recommended) updating methods
// available, you can read about them here: http://tt-rss.org/wiki/UpdatingFeeds
// *****************************
// *** Files and directories ***
// *****************************
define('PHP_EXECUTABLE', '/usr/bin/php');
// Path to PHP *COMMAND LINE* executable, used for various command-line tt-rss
// programs and update daemon. Do not try to use CGI binary here, it won't work.
// If you see HTTP headers being displayed while running tt-rss scripts,
// then most probably you are using the CGI binary. If you are unsure what to
// put in here, ask your hosting provider.
define('LOCK_DIRECTORY', 'lock');
// Directory for lockfiles, must be writable to the user you run
// daemon process or cronjobs under.
define('CACHE_DIR', 'cache');
// Local cache directory for RSS feed content.
define('ICONS_DIR', "feed-icons");
define('ICONS_URL', "feed-icons");
// Local and URL path to the directory, where feed favicons are stored.
// Unless you really know what you're doing, please keep those relative
// to tt-rss main directory.
// **********************
// *** Authentication ***
// **********************
// Please see PLUGINS below to configure various authentication modules.
define('AUTH_AUTO_CREATE', true);
// Allow authentication modules to auto-create users in tt-rss internal
// database when authenticated successfully.
define('AUTH_AUTO_LOGIN', true);
// Automatically login user on remote or other kind of externally supplied
// authentication, otherwise redirect to login form as normal.
// If set to true, users won't be able to set application language
// and settings profile.
// *********************
// *** Feed settings ***
// *********************
define('FORCE_ARTICLE_PURGE', 0);
// When this option is not 0, users ability to control feed purging
// intervals is disabled and all articles (which are not starred)
// older than this amount of days are purged.
// *** PubSubHubbub settings ***
define('PUBSUBHUBBUB_HUB', '');
// URL to a PubSubHubbub-compatible hub server. If defined, "Published
// articles" generated feed would automatically become PUSH-enabled.
define('PUBSUBHUBBUB_ENABLED', false);
// Enable client PubSubHubbub support in tt-rss. When disabled, tt-rss
// won't try to subscribe to PUSH feed updates.
// ****************************
// *** Sphinx search plugin ***
// ****************************
define('SPHINX_SERVER', 'localhost:9312');
// Hostname:port combination for the Sphinx server.
define('SPHINX_INDEX', 'ttrss, delta');
// Index name in Sphinx configuration. You can specify multiple indexes
// as a comma-separated string.
// Example configuration files are available on tt-rss wiki.
// ***********************************
// *** Self-registrations by users ***
// ***********************************
define('ENABLE_REGISTRATION', false);
// Allow users to register themselves. Please be aware that allowing
// random people to access your tt-rss installation is a security risk
// and potentially might lead to data loss or server exploit. Disabled
// by default.
define('REG_NOTIFY_ADDRESS', 'user@your.domain.dom');
// Email address to send new user notifications to.
define('REG_MAX_USERS', 10);
// Maximum amount of users which will be allowed to register on this
// system. 0 - no limit.
// **********************************
// *** Cookies and login sessions ***
// **********************************
define('SESSION_COOKIE_LIFETIME', 86400);
// Default lifetime of a session (e.g. login) cookie. In seconds,
// 0 means cookie will be deleted when browser closes.
// *********************************
// *** Email and digest settings ***
// *********************************
define('SMTP_FROM_NAME', 'Tiny Tiny RSS');
define('SMTP_FROM_ADDRESS', 'noreply@your.domain.dom');
// Name, address and subject for sending outgoing mail. This applies
// to password reset notifications, digest emails and any other mail.
define('DIGEST_SUBJECT', '[tt-rss] New headlines for last 24 hours');
// Subject line for email digests
define('SMTP_SERVER', '');
// Hostname:port combination to send outgoing mail (i.e. localhost:25).
// Blank - use system MTA.
define('SMTP_LOGIN', '');
define('SMTP_PASSWORD', '');
// These two options enable SMTP authentication when sending
// outgoing mail. Only used with SMTP_SERVER.
define('SMTP_SECURE', '');
// Used to select a secure SMTP connection. Allowed values: ssl, tls,
// or empty.
// ***************************************
// *** Other settings (less important) ***
// ***************************************
define('CHECK_FOR_UPDATES', true);
// Check for updates automatically if running Git version
define('ENABLE_GZIP_OUTPUT', false);
// Selectively gzip output to improve wire performance. This requires
// PHP Zlib extension on the server.
// Enabling this can break tt-rss in several httpd/php configurations,
// if you experience weird errors and tt-rss failing to start, blank pages
// after login, or content encoding errors, disable it.
define('PLUGINS', 'auth_internal, note');
// Comma-separated list of plugins to load automatically for all users.
// System plugins have to be specified here. Please enable at least one
// authentication plugin here (auth_*).
// Users may enable other user plugins from Preferences/Plugins but may not
// disable plugins specified in this list.
// Disabling auth_internal in this list would automatically disable
// reset password link on the login form.
define('LOG_DESTINATION', 'sql');
// Log destination to use. Possible values: sql (uses internal logging
// you can read in Preferences -> System), syslog - logs to system log.
// Setting this to blank uses PHP logging (usually to http server
// error.log).
define('CONFIG_VERSION', 26);
// Expected config version. Please update this option in config.php
// if necessary (after migrating all new options from this file).
// vim:ft=php

@ -1,81 +0,0 @@
##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##
# Default server configuration
#
server {
listen 80 default_server;
listen [::]:80 default_server;
# SSL configuration
#
# listen 443 ssl default_server;
# listen [::]:443 ssl default_server;
#
# Self signed certs generated by the ssl-cert package
# Don't use them in a production server!
#
# include snippets/snakeoil.conf;
root /builds/;
# Add index.php to the list if you are using PHP
index index.php index.html index.htm index.nginx-debian.html;
server_name _;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
autoindex on;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
# Virtual Host configuration for example.com
#
# You can move that to a different file under sites-available/ and symlink that
# to sites-enabled/ to enable it.
#
#server {
# listen 80;
# listen [::]:80;
#
# server_name example.com;
#
# root /var/www/example.com;
# index index.html;
#
# location / {
# try_files $uri $uri/ =404;
# }
#}

@ -1,5 +0,0 @@
#!/bin/sh
set -e
exec find . -name "*.php" -not -path "*/lib/*" -print0 | xargs -0 -n1 php -l

@ -1,20 +0,0 @@
<ruleset name="basic-rules"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0
http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>phpmd</description>
<!-- phpmd author is a bit weird i guess -->
<!-- <rule ref="rulesets/cleancode.xml">
<exclude name="BooleanArgumentFlag" />
<exclude name="ElseExpression" />
</rule> -->
<rule ref="rulesets/unusedcode.xml" />
</ruleset>

@ -1,8 +0,0 @@
#!/bin/sh
set -e
phpmd include,classes,plugins text utils/gitlab-ci/phpmd-ruleset.xml
FILES=$(ls -dm *.php | tr -d " "| tr -d "\n")
phpmd $FILES text utils/gitlab-ci/phpmd-ruleset.xml
Loading…
Cancel
Save