From ed163a66fd56ce82efb2c04eba8cde0c4dc7412a Mon Sep 17 00:00:00 2001 From: AndreaChirulescu Date: Fri, 23 Apr 2021 21:38:53 +0200 Subject: Added an uppercase in sql for venue and concert duplicate check Added test to create duplicate concert with varied cases in string --- includes/concert.php | 2 +- includes/venue.php | 10 +++++++++- tests/ConcertTest.php | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) diff --git a/includes/concert.php b/includes/concert.php index aff41ac..d95934e 100644 --- a/includes/concert.php +++ b/includes/concert.php @@ -147,7 +147,7 @@ if ( !class_exists('GiglogAdmin_Concert') ) { global $wpdb; $sql = 'SELECT id from wpg_concerts' - . ' where wpgconcert_name = "' . $cname .'"' + . ' where upper(wpgconcert_name) = upper("' . $cname .'")' . ' and venue = ' . $venue . ' and wpgconcert_date ="' . $date . '"'; diff --git a/includes/venue.php b/includes/venue.php index 07dec0e..f6f46b2 100644 --- a/includes/venue.php +++ b/includes/venue.php @@ -35,6 +35,10 @@ if ( !class_exists('GiglogAdmin_Venue') ) { 'wpgvenue_city' => $city, ]); $venue->save(); + error_log( 'NEW VENUE ADDED: ' + . ' ID: ' . $venue -> id() + . ' VENUE NAME ' . $name + . ', VENUE CITY ' . $city); return $venue; } @@ -42,10 +46,14 @@ if ( !class_exists('GiglogAdmin_Venue') ) { static function find_or_create($name, $city = 'Oslo') { global $wpdb; - $venuesql = 'SELECT * FROM wpg_venues WHERE upper(wpgvenue_name)="' . $name . '"'; + $venuesql = 'SELECT * FROM wpg_venues WHERE upper(wpgvenue_name)=upper("' . $name . '")'.' and wpgvenue_city="'.$city.'"'; $results = $wpdb->get_results($venuesql); if ($results) { + error_log( 'DUPLICATE VENUE: ' + . ' ID: ' . $results[0]->id + . ' VENUE NAME ' . $name + . ', VENUE CITY ' . $city); return new GiglogAdmin_Venue($results[0]); } else { diff --git a/tests/ConcertTest.php b/tests/ConcertTest.php index 82bdc9a..6d14b68 100644 --- a/tests/ConcertTest.php +++ b/tests/ConcertTest.php @@ -46,4 +46,26 @@ final class ConcertTest extends WP_UnitTestCase $this->assertNull($new); } + + public function testCreateExistingConcertVariableCase() : void + { + $venue = GiglogAdmin_Venue::create("a venue"); + $today = date("Y-m-d"); + + GiglogAdmin_Concert::create( + "a concert123", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $new = GiglogAdmin_Concert::create( + "a CoNceRt123", + $venue->id(), + $today, + "https://example.com/tickets/42", + "https://example.com/events/93"); + + $this->assertNull($new); + } } -- cgit v1.2.3