diff options
author | Harald Eilertsen <haraldei@anduin.net> | 2021-09-05 16:55:02 +0200 |
---|---|---|
committer | Harald Eilertsen <haraldei@anduin.net> | 2021-09-05 16:55:02 +0200 |
commit | 005d612a1a9ff04538024330899a7587543d84e9 (patch) | |
tree | fea96f909ff1715179e0ebe2a51937c1e46447b7 | |
parent | b04cdb88eaf0f011850cf455853758b4a1078203 (diff) | |
download | gigologadmin-005d612a1a9ff04538024330899a7587543d84e9.tar.gz gigologadmin-005d612a1a9ff04538024330899a7587543d84e9.tar.bz2 gigologadmin-005d612a1a9ff04538024330899a7587543d84e9.zip |
Add test for ConcertsTable
-rw-r--r-- | tests/ConcertsTableTest.php | 94 |
1 files changed, 94 insertions, 0 deletions
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 @@ +<?php declare(strict_types=1); +// SPDX-FileCopyrightText: 2021 Andrea Chirulescu <andrea.chirulescu@gmail.com> +// SPDX-FileCopyrightText: 2021 Harald Eilertsen <haraldei@anduin.net> +// +// 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); + } +} |