diff --git a/4dev/tests/CoreLibsACLLoginTest.php b/4dev/tests/CoreLibsACLLoginTest.php
index ad82c043..757316d5 100644
--- a/4dev/tests/CoreLibsACLLoginTest.php
+++ b/4dev/tests/CoreLibsACLLoginTest.php
@@ -181,6 +181,50 @@ final class CoreLibsACLLoginTest extends TestCase
'error_string_text' => 'Success: No error',
],
],
+ 'load, no login, ajax flag' => [
+ // error code, only for exceptions
+ [
+ 'page_name' => 'edit_users.php',
+ // for ajax
+ 'ajax_page' => true,
+ 'ajax_test_type' => 'parameter',
+ ],
+ [],
+ [],
+ 3000,
+ [
+ 'login_error' => 0,
+ 'error_string' => 'Success: No error',
+ 'error_string_text' => 'Success: No error',
+ // for ajax
+ 'action' => 'login',
+ 'ajax_get_count' => 0,
+ 'ajax_post_count' => 5,
+ 'ajax_post_action' => 'login',
+ ],
+ ],
+ 'load, no login, ajax globals' => [
+ // error code, only for exceptions
+ [
+ 'page_name' => 'edit_users.php',
+ // for ajax
+ 'ajax_page' => true,
+ 'ajax_test_type' => 'globals',
+ ],
+ [],
+ [],
+ 3000,
+ [
+ 'login_error' => 0,
+ 'error_string' => 'Success: No error',
+ 'error_string_text' => 'Success: No error',
+ // for ajax
+ 'action' => 'login',
+ 'ajax_get_count' => 0,
+ 'ajax_post_count' => 5,
+ 'ajax_post_action' => 'login',
+ ],
+ ],
'load, session euid set only, php error' => [
[
'page_name' => 'edit_users.php',
@@ -467,7 +511,13 @@ final class CoreLibsACLLoginTest extends TestCase
int $error,
array $expected
): void {
+ // reset session
$_SESSION = [];
+ // reset post & get
+ $_GET = [];
+ $_POST = [];
+ // reset global ajax page call
+ unset($GLOBALS['AJAX_PAGE']);
// init session (as MOCK)
/** @var \CoreLibs\Create\Session&MockObject */
$session_mock = $this->createPartialMock(
@@ -588,7 +638,23 @@ final class CoreLibsACLLoginTest extends TestCase
// run test
try {
- $login_mock->loginMainCall();
+ // if ajax call
+ // check if parameter, or globals (old type)
+ // else normal call
+ if (
+ !empty($mock_settings['ajax_test_type']) &&
+ $mock_settings['ajax_test_type'] == 'parameter'
+ ) {
+ $login_mock->loginMainCall($mock_settings['ajax_page']);
+ } elseif (
+ !empty($mock_settings['ajax_test_type']) &&
+ $mock_settings['ajax_test_type'] == 'globals'
+ ) {
+ $GLOBALS['AJAX_PAGE'] = $mock_settings['ajax_page'];
+ $login_mock->loginMainCall();
+ } else {
+ $login_mock->loginMainCall();
+ }
// on ok, do post login check based on expected return
// - loginGetLastErrorCode
$this->assertEquals(
@@ -678,8 +744,14 @@ final class CoreLibsACLLoginTest extends TestCase
} catch (\Exception $e) {
// print "[E]: " . $e->getCode() . ", ERROR: " . $login_mock->loginGetLastErrorCode() . "/"
// . ($expected['login_error'] ?? 0) . "\n";
+ // print "AJAX: " . $login_mock->loginGetAjaxFlag() . "\n";
+ // print "AJAX GLOBAL: " . ($GLOBALS['AJAX_PAGE'] ?? '{f}') . "\n";
+ // print "Login error expext: " . ($expected['login_error'] ?? '{0}') . "\n";
// if this is 3000, then we do further error checks
- if ($e->getCode() == 3000) {
+ if (
+ $e->getCode() == 3000 ||
+ !empty($_POST['login_exit']) && $_POST['login_exit'] == 3000
+ ) {
$this->assertEquals(
$expected['login_error'],
$login_mock->loginGetLastErrorCode(),
@@ -716,10 +788,51 @@ final class CoreLibsACLLoginTest extends TestCase
'Assert login error string does not exit'
);
}
+ // for ajax type, test post return values
+ if ($login_mock->loginGetAjaxFlag()) {
+ $this->assertCount(
+ $expected['ajax_get_count'],
+ $_GET,
+ 'Assert ajax error _GET is valid count'
+ );
+ // post has only action, login_exit, login_error,
+ // login_error_text and login_html
+ // 5 entries
+ $this->assertCount(
+ $expected['ajax_post_count'],
+ $_POST,
+ 'Assert ajax error _POST is valid count'
+ );
+ // test post entries
+ $this->assertEquals(
+ $expected['ajax_post_action'],
+ $_POST['action'],
+ 'Assert ajax _POST action'
+ );
+ $this->assertEquals(
+ $login_mock->loginGetLastErrorCode(),
+ $_POST['login_error'],
+ 'Assert ajax _POST error'
+ );
+ $this->assertEquals(
+ $login_mock->loginGetErrorMsg($login_mock->loginGetLastErrorCode(), true),
+ $_POST['login_error_text'],
+ 'Assert ajax _POST error text'
+ );
+ // html login basic check only, content is the same as when
+ // read from loginGetLoginHTML()
+ $this->assertStringContainsString(
+ '',
+ $_POST['login_html'],
+ 'Assert ajax _POST html string exits'
+ );
+ }
}
// print "EXCEPTION: " . print_r($e, true) . "\n";
$this->assertEquals(
- $e->getCode(),
+ !$login_mock->loginGetAjaxFlag() ?
+ $e->getCode() :
+ $_POST['login_exit'] ?? 0,
$error,
'Expected error code: ' . $e->getCode()
. ', ' . $e->getMessage()
diff --git a/4dev/tests/CoreLibsDBIOTest.php b/4dev/tests/CoreLibsDBIOTest.php
index 80939035..e3fe16f5 100644
--- a/4dev/tests/CoreLibsDBIOTest.php
+++ b/4dev/tests/CoreLibsDBIOTest.php
@@ -3683,7 +3683,7 @@ final class CoreLibsDBIOTest extends TestCase
*
* @return array
*/
- public function returingProvider(): array
+ public function returningPrvoider(): array
{
// NOTE that query can have multiple inserts
// NOTE if there are different INSERTS before the primary keys
@@ -3801,7 +3801,7 @@ final class CoreLibsDBIOTest extends TestCase
*
* @covers ::dbGetReturningExt
* @covers ::dbGetReturningArray
- * @dataProvider returingProvider
+ * @dataProvider returningPrvoider
* @testdox Check returning cursor using $pk_name with $key and $pos [$_dataName]
*
* @param string $query