From 5395de2d04808041e453b46771dda926a778efd6 Mon Sep 17 00:00:00 2001 From: Daniel Bachhuber Date: Wed, 14 Sep 2016 09:46:09 -0700 Subject: [PATCH 1/2] Add testcase for failing `get_named_sem_ver()` with WP version numbers --- tests/test-utils.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/test-utils.php b/tests/test-utils.php index deda16a622..b8fdd135fb 100644 --- a/tests/test-utils.php +++ b/tests/test-utils.php @@ -44,6 +44,17 @@ public function testGetSemVer() { $this->assertEquals( 'major', Utils\get_named_sem_ver( '1.1.1', $original_version ) ); } + public function testGetSemVerWP() { + $original_version = '3.0'; + $this->assertEmpty( Utils\get_named_sem_ver( '2.8', $original_version ) ); + $this->assertEmpty( Utils\get_named_sem_ver( '2.9.1', $original_version ) ); + $this->assertEquals( 'patch', Utils\get_named_sem_ver( '3.0.1', $original_version ) ); + $this->assertEquals( 'minor', Utils\get_named_sem_ver( '3.1', $original_version ) ); + $this->assertEquals( 'minor', Utils\get_named_sem_ver( '3.1.1', $original_version ) ); + $this->assertEquals( 'major', Utils\get_named_sem_ver( '4.0', $original_version ) ); + $this->assertEquals( 'major', Utils\get_named_sem_ver( '4.1.1', $original_version ) ); + } + public function testParseSSHUrl() { $testcase = 'foo'; $this->assertEquals( array( From 3854a90dd245226ff157b780ae7257ff6ed1d095 Mon Sep 17 00:00:00 2001 From: Daniel Bachhuber Date: Wed, 14 Sep 2016 09:48:57 -0700 Subject: [PATCH 2/2] Fix error notice when using `Utils\get_named_sem_ver()` with WP versions --- php/utils.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/php/utils.php b/php/utils.php index 5c9ffcf811..0332ad1bbc 100644 --- a/php/utils.php +++ b/php/utils.php @@ -656,9 +656,16 @@ function get_named_sem_ver( $new_version, $original_version ) { } $parts = explode( '-', $original_version ); - list( $major, $minor, $patch ) = explode( '.', $parts[0] ); + $bits = explode( '.', $parts[0] ); + $major = $bits[0]; + if ( isset( $bits[1] ) ) { + $minor = $bits[1]; + } + if ( isset( $bits[2] ) ) { + $patch = $bits[2]; + } - if ( Semver::satisfies( $new_version, "{$major}.{$minor}.x" ) ) { + if ( ! is_null( $minor ) && Semver::satisfies( $new_version, "{$major}.{$minor}.x" ) ) { return 'patch'; } else if ( Semver::satisfies( $new_version, "{$major}.x.x" ) ) { return 'minor';