From b04cdb88eaf0f011850cf455853758b4a1078203 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 5 Sep 2021 16:54:12 +0200 Subject: Fix some bugs in generated HTML for ConcertsTable. --- includes/admin/views/_concerts_table.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/includes/admin/views/_concerts_table.php b/includes/admin/views/_concerts_table.php index 685ee07..a9e254e 100644 --- a/includes/admin/views/_concerts_table.php +++ b/includes/admin/views/_concerts_table.php @@ -70,7 +70,7 @@ if (!class_exists("GiglogAdmin_ConcertsTable")) } // Modify these to match the database structure // $content .= '' . $row->id. ''; - $content .= '

'; + $content .= ''; $content .= '' . $concert->cname() . ''; $content .= '' . $concert->venue()->name() . ''; $fdate = strtotime($concert->cdate()); @@ -81,7 +81,7 @@ if (!class_exists("GiglogAdmin_ConcertsTable")) $content .= '' . $this->mark_new_concert($concert) . ''; $content .= '' . $this->assign_role_for_user_form('photo1', $concert) . ''; - $content .= ' class="assigneduser">' . $this->assign_role_for_user_form('photo2', $concert) . ''; + $content .= '' . $this->assign_role_for_user_form('photo2', $concert) . ''; $content .= '' . $this->assign_role_for_user_form('rev1', $concert) . ''; $content .= '' . $this->assign_role_for_user_form('rev2', $concert) . ''; @@ -126,9 +126,9 @@ if (!class_exists("GiglogAdmin_ConcertsTable")) "Select venue..."); } //option to select own concerts only - $select .= ''; $select .= ''; -- cgit v1.2.3 From 005d612a1a9ff04538024330899a7587543d84e9 Mon Sep 17 00:00:00 2001 From: Harald Eilertsen Date: Sun, 5 Sep 2021 16:55:02 +0200 Subject: Add test for ConcertsTable --- tests/ConcertsTableTest.php | 94 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 tests/ConcertsTableTest.php diff --git a/tests/ConcertsTableTest.php b/tests/ConcertsTableTest.php new file mode 100644 index 0000000..73852c8 --- /dev/null +++ b/tests/ConcertsTableTest.php @@ -0,0 +1,94 @@ + +// SPDX-FileCopyrightText: 2021 Harald Eilertsen +// +// SPDX-License-Identifier: AGPL-3.0-or-later + +class ConcertsTableTest extends WP_UnitTestCase +{ + const VENUES = [ + [ "Rockefeller Music Hall", "Oslo" ], + [ "Sentrum Scene", "Oslo" ], + [ "Revolver", "Oslo" ], + [ "Meieriet", "Sogndal" ], + ]; + + const CONCERTS = [ + [ "Concert at Rockefeller #", 0, 2 ], + [ "Concert at Sentrum Scene #", 1, 4 ], + [ "Concert at Revolver #", 2, 5 ], + [ "Concert at Meieriet #", 3, 5 ], + ]; + + private static $concerts = []; + + /* This function runs _once_ before all the test cases. + * + * Use it to set up a common state that all test cases can + * use + */ + static function wpSetUpBeforeClass() : void + { + $created_venues = []; + foreach (self::VENUES as $venue) { + $created_venues[] = GiglogAdmin_Venue::find_or_create($venue[0], $venue[1]); + } + + $today = date("Y-m-d"); + + foreach (self::CONCERTS as $concert) { + for ($i = 0; $i < $concert[2]; $i++) { + if ($concert[2] > 1) { + $concert_name = $concert[0] . ($i + 1); + } + else { + $concert_name = $concert[0]; + } + + self::$concerts[] = GiglogAdmin_Concert::create( + $concert_name, + $created_venues[$concert[1]]->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + } + } + } + + /* This function runs _once_ after all the test cases in this class. + * + * It is needed to clean up changes in the database that we don't want + * to disturb any other tests. + */ + static function wpTearDownAfterClass() : void + { + global $wpdb; + + $tables = [ + "wpg_concerts", + "wpg_venues", + ]; + + foreach( $tables as $table ) { + $wpdb->query("DELETE FROM {$table}"); + } + } + + function testShowAllControlsToAdminOnAdminPage() { + $c = new GiglogAdmin_ConcertsTable(); + $html = $c->render(); + //$this->assertEquals('balle', $html); + + $doc = DOMDocument::loadHTML($html); + $forms = $doc->getElementsByTagName('form'); + $count = 0; + foreach ($forms as $form) { + $cls = $form->attributes->getNamedItem('class')->nodeValue; + if ($cls == 'assignit' || $cls == 'unassignit') { + $count++; + } + } + + $this->assertEquals($count, 64); + } +} -- cgit v1.2.3