Merge remote-tracking branch 'origin/support/2.6' into support/2.7

# Conflicts:
#	test/application/privUITransactionFileTest.php
This commit is contained in:
Pierre Goiffon
2021-11-03 11:10:43 +01:00
2 changed files with 25 additions and 15 deletions

View File

@@ -740,8 +740,7 @@ else {
Dict.S = function (sEntry) {
if (sEntry in Dict._entries) {
return Dict._entries[sEntry];
}
else {
} else {
return sEntry;
}
};
@@ -749,7 +748,7 @@ Dict.Format = function () {
var args = Array.from(arguments);
args[0] = Dict.S(arguments[0]);
return Format(args);
}
};
@@ -761,7 +760,7 @@ Dict.Format = function () {
* @api
* @since 2.6.5 2.7.6 3.0.0 N°4367
*/
const CombodoSanitizer = {
var CombodoSanitizer = {
ENUM_SANITIZATION_FILTER_INTEGER: 'integer',
ENUM_SANITIZATION_FILTER_STRING: 'string',
ENUM_SANITIZATION_FILTER_CONTEXT_PARAM: 'context_param',
@@ -815,4 +814,4 @@ const CombodoSanitizer = {
return sDefaultValue;
}
}
}
};

View File

@@ -27,6 +27,11 @@ use Combodo\iTop\Test\UnitTest\ItopDataTestCase;
*/
class privUITransactionFileTest extends ItopDataTestCase
{
/** @var int ID of the "support agent" pofile in the sample data */
const SAMPLE_DATA_SUPPORT_PROFILE_ID = 5;
const USER1_TEST_LOGIN = 'user1_support_test_privUITransaction';
const USER2_TEST_LOGIN = 'user2_support_test_privUITransaction';
public function setUp()
{
parent::setUp();
@@ -137,27 +142,33 @@ class privUITransactionFileTest extends ItopDataTestCase
/**
* @throws \SecurityException
* @uses self::SAMPLE_DATA_SUPPORT_PROFILE_ID
* @uses self::USER1_TEST_LOGIN
* @uses self::USER2_TEST_LOGIN
*/
public function testIsTransactionValid() {
$this->markTestSkipped('Still need some work for Jenkins (Token created by support user must be invalid in the admin user context)');
public function testIsTransactionValid()
{
$this->CreateUser(static::USER1_TEST_LOGIN, self::SAMPLE_DATA_SUPPORT_PROFILE_ID);
$this->CreateUser(static::USER2_TEST_LOGIN, self::SAMPLE_DATA_SUPPORT_PROFILE_ID);
$this->CreateUser(static::USER_TEST_LOGIN, 5); // profile:5 is "Support agent"
// create token in the support user context
UserRights::Login(self::USER_TEST_LOGIN);
// create token in the user1 context
$bUser1Login1 = UserRights::Login(self::USER1_TEST_LOGIN);
$this->assertTrue($bUser1Login1, 'Login with user1 throw an error');
$sTransactionIdUserSupport = privUITransactionFile::GetNewTransactionId();
$bResult = privUITransactionFile::IsTransactionValid($sTransactionIdUserSupport, false);
$this->assertTrue($bResult, 'Token created by support user must be valid in the support user context');
// test token in the admin user context
UserRights::Login('admin');
// test token in the user2 context
$bUser2Login = UserRights::Login(self::USER2_TEST_LOGIN);
$this->assertTrue($bUser2Login, 'Login with user2 throw an error');
$bResult = privUITransactionFile::IsTransactionValid($sTransactionIdUserSupport, false);
$this->assertFalse($bResult, 'Token created by support user must be invalid in the admin user context');
$bResult = privUITransactionFile::RemoveTransaction($sTransactionIdUserSupport);
$this->assertFalse($bResult, 'Token created by support user cannot be removed in the admin user context');
// test other methods in the support user context
UserRights::Login(self::USER_TEST_LOGIN);
// test other methods in the user1 context
$bUser1Login2 = UserRights::Login(self::USER1_TEST_LOGIN);
$this->assertTrue($bUser1Login2, 'Login with user1 throw an error');
$bResult = privUITransactionFile::RemoveTransaction($sTransactionIdUserSupport);
$this->assertTrue($bResult, 'Token created by support user must be removed in the support user context');
}