* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ use PHPUnit\Framework\TestCase; use PrestaShop\Module\AutoUpgrade\State; class StateTest extends TestCase { public function testClassReceivesProperty() { $state = new State(); $state->importFromArray(['backupName' => 'doge']); $exported = $state->export(); $this->assertSame('doge', $state->getBackupName()); $this->assertSame('doge', $exported['backupName']); } public function testClassReceivesModulesAddonsProperty() { $modules = [ 22320 => 'ps_imageslider', 22323 => 'ps_socialfollow', ]; $state = new State(); $state->importFromArray(['modules_addons' => $modules]); $exported = $state->export(); $this->assertSame($modules, $state->getModules_addons()); $this->assertSame($modules, $exported['modules_addons']); } public function testClassIgnoresRandomData() { $state = new State(); $state->importFromArray([ 'wow' => 'epic', 'backupName' => 'doge', ]); $exported = $state->export(); $this->assertArrayNotHasKey('wow', $exported); $this->assertSame('doge', $exported['backupName']); } // Tests with encoded data public function testClassReceivesPropertyFromEncodedData() { $modules = [ 22320 => 'ps_imageslider', 22323 => 'ps_socialfollow', ]; $data = [ 'nextParams' => [ 'backupName' => 'doge', 'modules_addons' => $modules, ], ]; $encodedData = base64_encode(json_encode($data)); $state = new State(); $state->importFromEncodedData($encodedData); $exported = $state->export(); $this->assertSame('doge', $state->getBackupName()); $this->assertSame('doge', $exported['backupName']); $this->assertSame($modules, $state->getModules_addons()); $this->assertSame($modules, $exported['modules_addons']); } }