diff options
author | ffflabs <amenadiel@gmail.com> | 2020-03-06 00:22:33 +0300 |
---|---|---|
committer | ffflabs <amenadiel@gmail.com> | 2020-03-06 00:22:33 +0300 |
commit | 09c13116a9d98caea5030e2c0bd300059b75a086 (patch) | |
tree | 2ce353615410bf450498684bc900e4f08d6f109d | |
parent | 98393645c36629d551d01b6f7f32a14f5416655d (diff) |
fixes tests
-rw-r--r-- | src/classes/ContainerUtils.php | 3 | ||||
-rw-r--r-- | src/controllers/DisplayController.php | 31 | ||||
-rw-r--r-- | tests/_support/Helper/Unit.php | 4 | ||||
-rw-r--r-- | tests/unit/ViewTest.php | 82 |
4 files changed, 65 insertions, 55 deletions
diff --git a/src/classes/ContainerUtils.php b/src/classes/ContainerUtils.php index c3d66f77..37606452 100644 --- a/src/classes/ContainerUtils.php +++ b/src/classes/ContainerUtils.php @@ -71,6 +71,7 @@ class ContainerUtils $appVersion = $composerinfo->extra->version; $phpMinVer = (\str_replace(['<', '>', '='], '', $composerinfo->require->php)); + //$this->prtrace($appVersion); //$this->dump($composerinfo); $settings = [ 'determineRouteBeforeAppMiddleware' => true, @@ -317,6 +318,7 @@ class ContainerUtils { $_server_info = $this->container->misc->getServerInfo(); $this->addFlash($subject, 'getDestinationWithLastTab'); + //$this->prtrace('$_server_info', $_server_info); // If username isn't set in server_info, you should login if (!isset($_server_info['username'])) { $destinationurl = $this->getRedirectUrl(); @@ -328,6 +330,7 @@ class ContainerUtils $urlvars = []; foreach ($url['urlvars'] as $key => $urlvar) { + //$this->prtrace($key, $urlvar); $urlvars[$key] = \PHPPgAdmin\Decorators\Decorator::get_sanitized_value($urlvar, $_REQUEST); } $_REQUEST = \array_merge($_REQUEST, $urlvars); diff --git a/src/controllers/DisplayController.php b/src/controllers/DisplayController.php index 104c8c42..18252017 100644 --- a/src/controllers/DisplayController.php +++ b/src/controllers/DisplayController.php @@ -146,7 +146,6 @@ class DisplayController extends BaseController ); $_REQUEST['query'] = $query; $_REQUEST['return'] = 'selectrows'; - $this->prtrace($query); } //$object = $this->setIfIsset($object, $_REQUEST[$subject]); @@ -164,7 +163,6 @@ class DisplayController extends BaseController $this->printTabs($subject, $tabsPosition); [$query, $title, $type] = $this->getQueryTitleAndType($data, $object); - $this->prtrace($query); $this->printTitle($this->lang[$title]); @@ -471,8 +469,12 @@ class DisplayController extends BaseController echo '<table id="data">' . \PHP_EOL; echo '<tr>'; - // Display edit and delete actions if we have a key - $display_action_column = (0 < \count($actions['actionbuttons']) && 0 < \count($key)); + try { + // Display edit and delete actions if we have a key + $display_action_column = (0 < \count($actions['actionbuttons']) && 0 < \count($key)); + } catch (\Exception $e) { + $display_action_column = false; + } echo $display_action_column ? "<th class=\"data\">{$this->lang['stractions']}</th>" . \PHP_EOL : ''; @@ -957,20 +959,23 @@ class DisplayController extends BaseController if ($object) { $key = $data->getRowIdentifier($object); } + // -1 means no unique keys, other non iterable should be discarded as well + if ($key === -1 || \is_iterable($key)) { + $key = []; + } // Check that the key is actually in the result set. This can occur for select // operations where the key fields aren't part of the select. XXX: We should // be able to support this, somehow. - if (\is_iterable($key)) { - foreach ($key as $v) { - // If a key column is not found in the record set, then we - // can't use the key. - if (!\array_key_exists($v, $resultset->fields)) { - $key = []; - - break; - } + foreach ($key as $v) { + // If a key column is not found in the record set, then we + // can't use the key. + if (!\array_key_exists($v, $resultset->fields)) { + $key = []; + + break; } } + $buttons = [ 'edit' => [ 'content' => $this->lang['stredit'], diff --git a/tests/_support/Helper/Unit.php b/tests/_support/Helper/Unit.php index d18682ee..f828c8bc 100644 --- a/tests/_support/Helper/Unit.php +++ b/tests/_support/Helper/Unit.php @@ -9,10 +9,11 @@ namespace Helper; use PHPPgAdmin\ContainerUtils; -if (!is_readable(BASE_PATH . '/src/lib.inc.php')) { +if (!is_readable(ContainerUtils::BASE_PATH . '/src/lib.inc.php')) { die('lib.inc.php is not readable'); } defined('IN_TEST') || define('IN_TEST', true); +require_once ContainerUtils::BASE_PATH . '/src/lib.inc.php'; // here you can define custom actions // all public methods declared in helper class will be available in $I @@ -40,7 +41,6 @@ class Unit extends \Codeception\Module //$conf = self::getConf(); if (!static::$_container) { - require_once BASE_PATH . '/src/lib.inc.php'; self::$_container = ContainerUtils::getContainerInstance(); } diff --git a/tests/unit/ViewTest.php b/tests/unit/ViewTest.php index 5099e6dd..fa7bf8c9 100644 --- a/tests/unit/ViewTest.php +++ b/tests/unit/ViewTest.php @@ -7,19 +7,21 @@ class ViewTest extends \Codeception\Test\Unit { - const BASE_PATH = \Codeception\Util::BASE_PATH; + //const BASE_PATH = self::BASE_PATH; /** * @var \UnitTester */ protected $tester; protected $_container; + protected static $BASE_PATH; protected function _before() { $Helper = $this->getModule('\Helper\Unit'); $this->container = $Helper::getContainer(); - + self::$BASE_PATH = $Helper::BASE_PATH; $this->container->get('misc')->setNoDBConnection(true); + // Helper //\Codeception\Util\Debug::debug('BASE_PATH is ' . \BASE_PATH); } @@ -32,7 +34,7 @@ class ViewTest extends \Codeception\Test\Unit public function testAcinsertView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/acinsert.php'; + require self::$BASE_PATH . '/tests/views/acinsert.php'; $controller = acinsertFactory($_container); $this->assertSame($controller->controller_name, 'AcinsertController', 'controller name should be AcinsertController'); } @@ -40,7 +42,7 @@ class ViewTest extends \Codeception\Test\Unit public function testAggregatesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/aggregates.php'; + require self::$BASE_PATH . '/tests/views/aggregates.php'; $controller = aggregatesFactory($_container); $this->assertSame($controller->controller_name, 'AggregatesController', 'controller name should be AggregatesController'); } @@ -48,7 +50,7 @@ class ViewTest extends \Codeception\Test\Unit public function testAlldbView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/alldb.php'; + require self::$BASE_PATH . '/tests/views/alldb.php'; $controller = alldbFactory($_container); $this->assertSame($controller->controller_name, 'AlldbController', 'controller name should be AlldbController'); } @@ -56,7 +58,7 @@ class ViewTest extends \Codeception\Test\Unit public function testBrowserView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/browser.php'; + require self::$BASE_PATH . '/tests/views/browser.php'; $controller = browserFactory($_container); $this->assertSame($controller->controller_name, 'BrowserController', 'controller name should be BrowserController'); } @@ -64,7 +66,7 @@ class ViewTest extends \Codeception\Test\Unit public function testCastsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/casts.php'; + require self::$BASE_PATH . '/tests/views/casts.php'; $controller = castsFactory($_container); $this->assertSame($controller->controller_name, 'CastsController', 'controller name should be CastsController'); } @@ -72,7 +74,7 @@ class ViewTest extends \Codeception\Test\Unit public function testColpropertiesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/colproperties.php'; + require self::$BASE_PATH . '/tests/views/colproperties.php'; $controller = colpropertiesFactory($_container); $this->assertSame($controller->controller_name, 'ColpropertiesController', 'controller name should be ColpropertiesController'); } @@ -80,7 +82,7 @@ class ViewTest extends \Codeception\Test\Unit public function testConstraintsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/constraints.php'; + require self::$BASE_PATH . '/tests/views/constraints.php'; $controller = constraintsFactory($_container); $this->assertSame($controller->controller_name, 'ConstraintsController', 'controller name should be ConstraintsController'); } @@ -88,7 +90,7 @@ class ViewTest extends \Codeception\Test\Unit public function testConversionsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/conversions.php'; + require self::$BASE_PATH . '/tests/views/conversions.php'; $controller = conversionsFactory($_container); $this->assertSame($controller->controller_name, 'ConversionsController', 'controller name should be ConversionsController'); } @@ -96,7 +98,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDatabaseView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/database.php'; + require self::$BASE_PATH . '/tests/views/database.php'; $controller = databaseFactory($_container); $this->assertSame($controller->controller_name, 'DatabaseController', 'controller name should be DatabaseController'); } @@ -104,7 +106,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDataexportView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/dataexport.php'; + require self::$BASE_PATH . '/tests/views/dataexport.php'; $controller = dataexportFactory($_container); $this->assertSame($controller->controller_name, 'DataexportController', 'controller name should be DataexportController'); } @@ -112,7 +114,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDataimportView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/dataimport.php'; + require self::$BASE_PATH . '/tests/views/dataimport.php'; $controller = dataimportFactory($_container); $this->assertSame($controller->controller_name, 'DataimportController', 'controller name should be DataimportController'); } @@ -120,7 +122,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDbexportView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/dbexport.php'; + require self::$BASE_PATH . '/tests/views/dbexport.php'; $controller = dbexportFactory($_container); $this->assertSame($controller->controller_name, 'DbexportController', 'controller name should be DbexportController'); } @@ -128,7 +130,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDisplayView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/display.php'; + require self::$BASE_PATH . '/tests/views/display.php'; $controller = displayFactory($_container); $this->assertSame($controller->controller_name, 'DisplayController', 'controller name should be DisplayController'); } @@ -136,7 +138,7 @@ class ViewTest extends \Codeception\Test\Unit public function testDomainsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/domains.php'; + require self::$BASE_PATH . '/tests/views/domains.php'; $controller = domainsFactory($_container); $this->assertSame($controller->controller_name, 'DomainsController', 'controller name should be DomainsController'); } @@ -144,7 +146,7 @@ class ViewTest extends \Codeception\Test\Unit public function testFulltextView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/fulltext.php'; + require self::$BASE_PATH . '/tests/views/fulltext.php'; $controller = fulltextFactory($_container); $this->assertSame($controller->controller_name, 'FulltextController', 'controller name should be FulltextController'); } @@ -152,7 +154,7 @@ class ViewTest extends \Codeception\Test\Unit public function testFunctionsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/functions.php'; + require self::$BASE_PATH . '/tests/views/functions.php'; $controller = functionsFactory($_container); $this->assertSame($controller->controller_name, 'FunctionsController', 'controller name should be FunctionsController'); } @@ -160,7 +162,7 @@ class ViewTest extends \Codeception\Test\Unit public function testGroupsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/groups.php'; + require self::$BASE_PATH . '/tests/views/groups.php'; $controller = groupsFactory($_container); $this->assertSame($controller->controller_name, 'GroupsController', 'controller name should be GroupsController'); } @@ -168,7 +170,7 @@ class ViewTest extends \Codeception\Test\Unit public function testHelpView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/help.php'; + require self::$BASE_PATH . '/tests/views/help.php'; $controller = helpFactory($_container); $this->assertSame($controller->controller_name, 'HelpController', 'controller name should be HelpController'); } @@ -176,7 +178,7 @@ class ViewTest extends \Codeception\Test\Unit public function testHistoryView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/history.php'; + require self::$BASE_PATH . '/tests/views/history.php'; $controller = historyFactory($_container); $this->assertSame($controller->controller_name, 'HistoryController', 'controller name should be HistoryController'); } @@ -184,7 +186,7 @@ class ViewTest extends \Codeception\Test\Unit public function testIndexesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/indexes.php'; + require self::$BASE_PATH . '/tests/views/indexes.php'; $controller = indexesFactory($_container); $this->assertSame($controller->controller_name, 'IndexesController', 'controller name should be IndexesController'); } @@ -192,7 +194,7 @@ class ViewTest extends \Codeception\Test\Unit public function testInfoView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/info.php'; + require self::$BASE_PATH . '/tests/views/info.php'; $controller = infoFactory($_container); $this->assertSame($controller->controller_name, 'InfoController', 'controller name should be InfoController'); } @@ -200,7 +202,7 @@ class ViewTest extends \Codeception\Test\Unit public function testIntroView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/intro.php'; + require self::$BASE_PATH . '/tests/views/intro.php'; $controller = introFactory($_container); $this->assertSame($controller->controller_name, 'IntroController', 'controller name should be IntroController'); } @@ -208,7 +210,7 @@ class ViewTest extends \Codeception\Test\Unit public function testLanguagesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/languages.php'; + require self::$BASE_PATH . '/tests/views/languages.php'; $controller = languagesFactory($_container); $this->assertSame($controller->controller_name, 'LanguagesController', 'controller name should be LanguagesController'); } @@ -216,7 +218,7 @@ class ViewTest extends \Codeception\Test\Unit public function testLoginView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/login.php'; + require self::$BASE_PATH . '/tests/views/login.php'; $controller = loginFactory($_container); $this->assertSame($controller->controller_name, 'LoginController', 'controller name should be LoginController'); } @@ -224,7 +226,7 @@ class ViewTest extends \Codeception\Test\Unit public function testOpclassesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/opclasses.php'; + require self::$BASE_PATH . '/tests/views/opclasses.php'; $controller = opclassesFactory($_container); $this->assertSame($controller->controller_name, 'OpclassesController', 'controller name should be OpclassesController'); } @@ -232,7 +234,7 @@ class ViewTest extends \Codeception\Test\Unit public function testOperatorsView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/operators.php'; + require self::$BASE_PATH . '/tests/views/operators.php'; $controller = operatorsFactory($_container); $this->assertSame($controller->controller_name, 'OperatorsController', 'controller name should be OperatorsController'); } @@ -240,7 +242,7 @@ class ViewTest extends \Codeception\Test\Unit public function testPrivilegesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/privileges.php'; + require self::$BASE_PATH . '/tests/views/privileges.php'; $controller = privilegesFactory($_container); $this->assertSame($controller->controller_name, 'PrivilegesController', 'controller name should be PrivilegesController'); } @@ -248,7 +250,7 @@ class ViewTest extends \Codeception\Test\Unit public function testRolesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/roles.php'; + require self::$BASE_PATH . '/tests/views/roles.php'; $controller = rolesFactory($_container); $this->assertSame($controller->controller_name, 'RolesController', 'controller name should be RolesController'); } @@ -256,7 +258,7 @@ class ViewTest extends \Codeception\Test\Unit public function testRulesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/rules.php'; + require self::$BASE_PATH . '/tests/views/rules.php'; $controller = rulesFactory($_container); $this->assertSame($controller->controller_name, 'RulesController', 'controller name should be RulesController'); } @@ -264,7 +266,7 @@ class ViewTest extends \Codeception\Test\Unit public function testSchemasView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/schemas.php'; + require self::$BASE_PATH . '/tests/views/schemas.php'; $controller = schemasFactory($_container); $this->assertSame($controller->controller_name, 'SchemasController', 'controller name should be SchemasController'); } @@ -272,7 +274,7 @@ class ViewTest extends \Codeception\Test\Unit public function testSequencesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/sequences.php'; + require self::$BASE_PATH . '/tests/views/sequences.php'; $controller = sequencesFactory($_container); $this->assertSame($controller->controller_name, 'SequencesController', 'controller name should be SequencesController'); } @@ -280,7 +282,7 @@ class ViewTest extends \Codeception\Test\Unit public function testServersView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/servers.php'; + require self::$BASE_PATH . '/tests/views/servers.php'; $controller = serversFactory($_container); $this->assertSame($controller->controller_name, 'ServersController', 'controller name should be ServersController'); } @@ -288,7 +290,7 @@ class ViewTest extends \Codeception\Test\Unit public function testSqleditView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/sqledit.php'; + require self::$BASE_PATH . '/tests/views/sqledit.php'; $controller = sqleditFactory($_container); $this->assertSame($controller->controller_name, 'SqleditController', 'controller name should be SqleditController'); } @@ -296,7 +298,7 @@ class ViewTest extends \Codeception\Test\Unit public function testSqlView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/sql.php'; + require self::$BASE_PATH . '/tests/views/sql.php'; $controller = sqlFactory($_container); $this->assertSame($controller->controller_name, 'SqlController', 'controller name should be SqlController'); } @@ -304,7 +306,7 @@ class ViewTest extends \Codeception\Test\Unit public function testTablespacesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/tablespaces.php'; + require self::$BASE_PATH . '/tests/views/tablespaces.php'; $controller = tablespacesFactory($_container); $this->assertSame($controller->controller_name, 'TablespacesController', 'controller name should be TablespacesController'); } @@ -312,7 +314,7 @@ class ViewTest extends \Codeception\Test\Unit public function testTriggersView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/triggers.php'; + require self::$BASE_PATH . '/tests/views/triggers.php'; $controller = triggersFactory($_container); $this->assertSame($controller->controller_name, 'TriggersController', 'controller name should be TriggersController'); } @@ -320,7 +322,7 @@ class ViewTest extends \Codeception\Test\Unit public function testTypesView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/types.php'; + require self::$BASE_PATH . '/tests/views/types.php'; $controller = typesFactory($_container); $this->assertSame($controller->controller_name, 'TypesController', 'controller name should be TypesController'); } @@ -328,7 +330,7 @@ class ViewTest extends \Codeception\Test\Unit public function testUsersView() { $_container = $this->container; - require self::BASE_PATH . '/tests/views/users.php'; + require self::$BASE_PATH . '/tests/views/users.php'; $controller = usersFactory($_container); $this->assertSame($controller->controller_name, 'UsersController', 'controller name should be UsersController'); } |