1
0
mirror of https://github.com/e107inc/e107.git synced 2025-08-30 17:50:12 +02:00

501 Commits

Author SHA1 Message Date
Nick Liu
0bacc5903c Prevent error if 'social_login' pref is not an array 2020-02-19 17:11:21 +01:00
Cameron
0dbad5d72b Issue #4101 toASCII characters added and test added to confirm. 2020-02-17 13:43:39 -08:00
Cameron
df764389a8 Issue #4102 Parsing of < or > 2020-02-17 13:13:06 -08:00
Nick Liu
91bfc1df23 Core modifications to support Hybridauth 3
- MOD: Replaced e107::getPref('social_login') with
       SocialLoginConfigManager::getValidConfiguredProviderConfigs()
- FIX: signup_shortcodes updated with new social login providers
- MOD: e107::filter_request() code de-duplication: HTTP 400 exits
- MOD: Deprecated e107::getHybridAuth() to discourage direct access to
       third-party dependency Hybridauth
- FIX: Updated e_user_provider for Hybridauth 3
- FIX: e_user::tryProviderSession() and Hybridauth 3
- NEW: Dynamic auth provider support in social_adminarea
- NEW: Database migration for social plugin's social_login pref
2020-02-17 10:38:49 +01:00
Nick Liu
2a69227135 Exclude Composer files in GitHub sync for e107 v2 2020-02-17 10:38:47 +01:00
Cameron
89fff6faad Improved line-breaks handling and added test. 2020-02-02 15:11:36 -08:00
Cameron
e15a10234e Parser: Fix for line-breaks when converting HTML back to plain text. 2020-02-02 14:54:29 -08:00
Cameron
48ae6455a4 getUsersInClass() now accepts extended user field names - just prefix those fields with "ue.". 2020-01-23 14:59:01 -08:00
Nick Liu
f23aec7395 Replaced e_date::strptime() with eShims::strptime()
- NEW: Added \e107\Shims\Internal\StrptimeTrait, which implements PHP internal function
       strptime(). On not-Windows, the built-in function is called. If that function fails
       or if the operating system is Windows, the alternative pure PHP implementation is
       attempted. The first successful call is returned, or false if none are successful.
- MOD: Deprecated e_date::strptime() in favor of eShims::strptime()
- FIX: License misatributed for e_date::strptime() (now eShims::strptime()). The library
       used was public domain, not CC BY-NC-SA 2.0 FR by Lionel Sauron.
- MOD: Removed STRPTIME_COMPAT constant now that eShims::strptime() exists
- MOD: Removed support for calling e_date::strptime() with:
       - a localized full month name
       - a localized abbreviated month name
       - AM or PM
       - am or pm
       because these features were only implemented in Windows mode (STRPTIME_COMPAT).
- MOD: php_compatibility_handler.php now defines global strptime() using the
       eShims::strptime() implementation
- NEW: Test all(?) the possibilities of eShims::strptime()
2020-01-22 09:07:27 +01:00
Cameron
e1e8a8b627 Added 'base64' option to allow for embedded image src. (useful when including avatars in email signatures)
Added test for toAvatar() method.
Cleaned up &amp; when found in URL by getRemoteContent()
2020-01-19 15:35:36 -08:00
Nick Liu
8b354adf44 Don't spam database server with connections
- MOD: Silently ignore failures to e_db_mysql::close(); if it's failing, it's probably already closed
- FIX: Close the PDO or mysqli connection after each e_db_abstractTest test
- MOD: Changed class2.php's $sql variable to be hinted as an e_db instead of e_db_mysql
2020-01-19 14:33:11 +01:00
Nick Liu
72d3f07410 PHP 5.6 fixes for e_db_mysql
- FIX: Don't redefine MYSQL_* constants in e_db_pdo_class.php
- FIX: e_db_mysql::rowCount() could try to use mysql_num_rows() to count rows of a non-resource
- FIX: e_db_mysql::delete() stores the number of deleted rows in e_db_mysql::$mySQLrows
- FIX: e_db_abstractTest::testDb_Query() was fetching in PDO mode but shouldn't have been
- FIX: Typos in e_db_abstractTest::testDelete()
- MOD: Moved PDO-exclusive testBackup() from e_db_abstractTest to e_db_pdoTest
- FIX: e_db_mysqlTest now works in PHP 5.6 if the main e_db instance was in PDO mode but the test
       class initializes in legacy mode
- MOD: e_db_mysqlTest now asserts that PDO mode is not in use
- FIX: e_db_mysqlTest::testGetServerInfo() should now actually get a version number
- FIX: e_db_mysqlTest::testGetLastErrorNumber() has a different error code compared to PDO
- FIX: e_db_mysqlTest::testEscape() should actually get something from mysql_real_escape_string()
2020-01-19 12:30:23 +01:00
Nick Liu
510d8e231f Fix flaky e_pluginTest::testBuildAddonPrefList()
Apparently requires the "gallery" plugin to be installed
2020-01-18 19:14:06 +01:00
Nick Liu
be8f2bbeb6 Fixed PHP 7.3 warnings
- FIX: Silenced compact() in e107Test::testInitCore()
- FIX: Null check in e_db_pdo::makeTableDef()
- FIX: Null check in e_db_mysql::makeTableDef()
- FIX: userlogin::login() had this warning on line 148:
       "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?
2020-01-18 18:52:20 +01:00
Nick Liu
d55fe8a77b Import LAN for e_formTest::testRenderElement() 2020-01-18 16:36:23 +01:00
Nick Liu
d1bdfb8546 Type checks and corrections for e_parse::thumbSrcSet() 2020-01-18 16:35:21 +01:00
Nick Liu
207ce81106 Bring class2Test::testCheckClass() back to passing (workaround) 2020-01-18 16:35:21 +01:00
Nick Liu
a1560b1989 Strict fixes for e_tree_model::flattenTree()
- FIX: Null check during child recursion of e_tree_model::flattenTree()
- FIX: TreeModelTest::testTreeParentsAreAssignedCorrectly() apparently never worked until now because the wrong index was used
2020-01-18 16:35:20 +01:00
Nick Liu
cf8dc0b909 Null coalescing for e_theme constructor 2020-01-18 16:35:19 +01:00
Nick Liu
f5f145485a Eliminated notice failures in e107Test
- FIX: e107::getTemplate() could be run without the necessary plugin LANs
- FIX: e107Test::testGetInstance() included e107_config.php too many times
- FIX: Empty check in e107Test::testGetTemplate()
2020-01-18 16:35:19 +01:00
Nick Liu
91660a2c32 Test isolation fixes for e_db_abstractTest
Also needed a null check in e_db_pdo::db_Query()
2020-01-18 16:35:18 +01:00
Nick Liu
a0f4489e41 Disabled db_verifyTest::testGetIndex() due to no assertions 2020-01-18 16:35:18 +01:00
Nick Liu
b8d6b9eccb Type and null checks for pluginsTest 2020-01-18 16:35:18 +01:00
Nick Liu
622be85140 Type checks involving e_formTest
- MOD: e107::getTemplate() now accepts blank strings for the plugin name to mean
       that a core template should be loaded
- FIX: e_form::progressBar() now supports input values that already have % at the end
- FIX: Null check for $options['list'] in e_form::progressBar()
- NEW: Test rounding in e_formTest::testProgressBar()
2020-01-18 16:35:17 +01:00
Nick Liu
46b541889f Fixed array key absence check in e_db_abstractTest::testDb_Fetch() 2020-01-18 16:35:17 +01:00
Nick Liu
dbdb5f4a86 Fix e_arrayTest::testUnserialize()
e_DEBUG is already set because of the new test debug strategy
2020-01-18 11:38:39 +01:00
Nick Liu
b2bd6763de Null checks for e107TinyMceParserTest
- FIX: Do not redefine e_ADMIN_AREA in parser.php
- FIX: Null checks for e107TinyMceParser
- FIX: Array type check for e_bbcode::imgToBBcode()
- FIX: Optional query string in e_parse::thumbUrlDecode()
- FIX: Don't redefine TINYMCE_UNIT_TEST
2020-01-18 11:05:08 +01:00
Nick Liu
66a9765f50 Corrected subset check in user_classTest::testGetUsersInClass() 2020-01-18 11:05:07 +01:00
Nick Liu
78a5c2aec7 Disabled e_onlineTest::testGoOnline() – has no assertions 2020-01-18 11:05:06 +01:00
Nick Liu
b4e48f8cbf Fix duplicate constant in lancheckTest 2020-01-17 19:08:46 +01:00
Nick Liu
62a547aed2 Fixed E_NOTICE in plugin install/uninstall process
- FIX: e107::coreLan() now loads the lan_admin.php file if the $admin argument is true
- FIX: Variable scope of $eplug_folder in e107plugin::uninstall()
- FIX: isset() check order in pluginsTest::makePluginReport()
- FIX: class2.php: Missing ADMINPERMS constant in CLI mode
2020-01-17 17:11:26 +01:00
Nick Liu
bfad3f7202 Suppressed constant already defined errors in e_db_mysqlTest 2020-01-17 15:57:34 +01:00
Nick Liu
34047a2db3 Prevent HTML code injection in e107::url()
Fixes: #4054

This is a better fix for #4054. HTML code injection can no longer occur in URLs generated by
e107::url() thanks to htmlspecialchars(). The previous implementation only addressed:

    & => &amp;

Now, quotation marks and alligator brackets are also escaped, so:

    <a href=""></html>"></a>

is now rendered as:

    <a href="&quot;&gt;&lt;/html&gt;"></a>
2020-01-14 23:56:19 +01:00
Cameron
15e76c84d1 Revert last test as e107::redirect() will correct any entity detected. 2020-01-14 13:57:33 -08:00
Cameron
4aa5ac8622 Issue 4054 Added test for e107::url() with 'mode' => 'full' as often utilized by e107::redirect() 2020-01-14 13:45:35 -08:00
Nick Liu
e62422d63a Old HTML ampersand strict compatibility
- FIX: e107::url() now puts "&amp;" in the query string instead of "&" for compliance with the older,
       looser definition of ambiguous ampersands in the HTML specification.
       Fixes: #4054
- FIX: Typo in comment
- FIX: Clear the core/e107/addons/e_url registry (cache) because if a plugin is installed after that
       cache is initialized, the cache is not updated anymore. The plugin's e_url is therefore not
       loaded, so SEF URLs won't be generated for that plugin until the cache is regenerated.
- NEW: Test for #4054
- FIX: e_pluginTest::testGetFields() expects the initial condition of the "forum" plugin to be
       uninstalled.
2020-01-13 00:54:50 +01:00
Nick Liu
029f4883e6 Use canonical file system paths in e_fileTest::testUnzipGithubArchive()
Should fix the tests on Windows

Fixes: #4052
2019-12-29 12:29:27 +01:00
Nick Liu
fabb0c2757 e_db_pdo::copyRow() - Greatly decrease collision chance
Increased possible random strings for unique fields in e_db_pdo::copyRow() from 1000 to 59^11 (UserHandler::generateRandomString() "alphanumeric" should have 59 characters to choose from)

If a collision still happens, e_db_pdo::copyRow() retries up to 3 times for a successful copy.

Fixes: #3678
2019-12-27 21:54:11 +01:00
Nick Liu
3b4240bbae Quality control for e_file::unzipGithubArchive()
- MOD: PHPDoc for e_file::unzipGithubArchive()
- NEW: e_file::unzipGithubArchive(): Added exclusions for files that don't exist in production
- NEW: e_file::unzipGithubArchive(): Accept a destination path argument for a custom extraction location
- NEW: Restored unimplemented skipped list in e_file::unzipGithubArchive()
- FIX: e_file::unzipGithubArchive(): Extraction fails if parent directory of file doesn't exist
- MOD: Type hint for Base::$deployer
- NEW: Basic test for e_file::unzipGithubArchive()
2019-12-27 11:33:21 -06:00
Nick Liu
6c168a2df6 pluginsTest: Ensure plugin is uninstalled before trying to install it 2019-12-25 13:56:58 -08:00
Nick Liu
0466841d2d e_parseTest initialization order fix for flaky test? 2019-12-25 13:56:28 -08:00
Nick Liu
29999eed6d Updated to Codeception 4.0 2019-12-23 19:51:18 +01:00
Nick Liu
f2edd94ea4 Fixed e_db_abstractTest::testDb_Select_gen() UPDATE query
A previous test may have changed the value so that the update would not have changed anything.
2019-12-23 18:40:18 +01:00
Nick Liu
9b59527b3d Moved PDO-exclusive features from e_db_abstractTest to e_db_pdoTest
e_db_pdoTest::testSelectBind()
e_db_pdoTest::testDb_QueryBind()
e_db_pdoTest::testDb_CopyRowUnique()
2019-12-23 18:34:16 +01:00
Nick Liu
9677db1c1c Removed bad e_LEGACY_MODE implementation
e_LEGACY_MODE caused the query results from e_db_pdo and e_db_mysql to return different styles (MYSQL_BOTH and MYSQL_ASSOC, respectively).

To resolve this inconsistency, e_LEGACY_MODE has been removed from the e107 core.
2019-12-23 16:50:33 +01:00
Nick Liu
71e7f8778c Merged e_db_mysql and e_db_pdo tests into e_db_abstractTest
- FIX: e_db::copyTable() is now an interface
- FIX: e_db_mysql now implements e_db
- FIX: Implemented missing e_db_mysql::copyTable() public method
- FIX: Implemented missing e_db_mysql::setLanguage() method
- FIX: Implemented missing e_db_mysql::getLanguage() method
- FIX: Implemented missing e_db_mysql::dropTable() method
- MOD: Merged e_db_mysqlTest and e_db_pdoTest into e_db_abstractTest
2019-12-23 16:37:48 +01:00
Nick Liu
2330f8a152 Removed hard-coded SQL database creation 2019-12-23 15:28:52 +01:00
Tijn Kuyper
b364043125 Added two userclasses, updated e_formTest and e_user_modelTest to reflect the changes
1. TestImage1 - with a FontAwesome icon
2. TestImage2 - with a png icon (TinyMCE plugin icon)

Added user to those userclasses.
2019-12-11 17:00:17 +01:00
Cameron
3b28884b56 Possible fixes. 2019-12-04 13:12:47 -06:00
Deltik
ae9f91084b Disabled flaky and failing tests for repo migration
Related: #4030
Related: #4031
Related: #4032
Related: #4033
2019-11-27 15:49:43 -06:00