@@ -13,39 +13,20 @@ class Version_Utils_Tests extends WP_UnitTestCase {
13
13
14
14
protected $ info_transient_key = 'wp_plugin_check_latest_version_info ' ;
15
15
16
- public function set_up () {
17
- parent ::set_up ();
18
-
19
- $ info_data = array (
20
- 'response ' => 'upgrade ' ,
21
- 'download ' => 'https://downloads.wordpress.org/release/wordpress-6.7.1.zip ' ,
22
- 'locale ' => 'en_US ' ,
23
- 'packages ' => array (
24
- 'full ' => 'https://downloads.wordpress.org/release/wordpress-6.7.1.zip ' ,
25
- 'no_content ' => 'https://downloads.wordpress.org/release/wordpress-6.7.1-no-content.zip ' ,
26
- 'new_bundled ' => 'https://downloads.wordpress.org/release/wordpress-6.7.1-new-bundled.zip ' ,
27
- 'partial ' => false ,
28
- 'rollback ' => false ,
29
- ),
30
- 'current ' => '6.7.1 ' ,
31
- 'version ' => '6.7.1 ' ,
32
- 'php_version ' => '7.2.24 ' ,
33
- 'mysql_version ' => '5.5.5 ' ,
34
- 'new_bundled ' => '6.7 ' ,
35
- 'partial_version ' => false ,
36
- );
37
-
38
- set_transient ( $ this ->info_transient_key , $ info_data );
39
- }
40
-
41
- public function test_wordpress_latest_version () {
42
- $ version = $ this ->get_wordpress_latest_version ();
43
- $ this ->assertSame ( '6.7.1 ' , $ version );
16
+ /**
17
+ * @dataProvider data_version_test_cases
18
+ */
19
+ public function test_wordpress_latest_version ( $ full_version , $ expected_major ) {
20
+ $ this ->set_test_version_data ( $ full_version );
21
+ $ this ->assertSame ( $ full_version , $ this ->get_wordpress_latest_version () );
44
22
}
45
23
46
- public function test_wordpress_stable_version () {
47
- $ version = $ this ->get_wordpress_stable_version ();
48
- $ this ->assertSame ( '6.7 ' , $ version );
24
+ /**
25
+ * @dataProvider data_version_test_cases
26
+ */
27
+ public function test_wordpress_stable_version ( $ full_version , $ expected_major ) {
28
+ $ this ->set_test_version_data ( $ full_version );
29
+ $ this ->assertSame ( $ expected_major , $ this ->get_wordpress_stable_version () );
49
30
}
50
31
51
32
/**
@@ -56,9 +37,35 @@ public function test_wordpress_relative_major_version( $version, $steps, $new_ve
56
37
$ this ->assertSame ( $ new_version , $ result );
57
38
}
58
39
59
- public function tear_down () {
60
- delete_transient ( $ this ->info_transient_key );
61
- parent ::tear_down ();
40
+ protected function set_test_version_data ( $ version ) {
41
+ $ major_version = substr ( $ version , 0 , strrpos ( $ version , '. ' ) );
42
+
43
+ set_transient (
44
+ $ this ->info_transient_key ,
45
+ array (
46
+ 'version ' => $ version ,
47
+ 'new_bundled ' => $ major_version ,
48
+ 'current ' => $ version ,
49
+ 'response ' => 'upgrade ' ,
50
+ 'download ' => "https://downloads.wordpress.org/release/wordpress- {$ version }.zip " ,
51
+ 'php_version ' => '7.2.24 ' ,
52
+ 'mysql_version ' => '5.5.5 ' ,
53
+ 'packages ' => array (
54
+ 'full ' => "https://downloads.wordpress.org/release/wordpress- {$ version }.zip " ,
55
+ 'no_content ' => "https://downloads.wordpress.org/release/wordpress- {$ version }-no-content.zip " ,
56
+ 'new_bundled ' => "https://downloads.wordpress.org/release/wordpress- {$ version }-new-bundled.zip " ,
57
+ 'partial ' => false ,
58
+ 'rollback ' => false ,
59
+ ),
60
+ )
61
+ );
62
+ }
63
+
64
+ public function data_version_test_cases () {
65
+ return array (
66
+ 'single-digit-version ' => array ( '6.7.1 ' , '6.7 ' ),
67
+ 'double-digit-version ' => array ( '11.8.3 ' , '11.8 ' ),
68
+ );
62
69
}
63
70
64
71
public function data_wordpress_version_items () {
@@ -73,6 +80,19 @@ public function data_wordpress_version_items() {
73
80
array ( '6.0 ' , -2 , '5.8 ' ),
74
81
array ( '5.8 ' , 2 , '6.0 ' ),
75
82
array ( '6.1 ' , -2 , '5.9 ' ),
83
+ array ( '11.2 ' , 1 , '11.3 ' ),
84
+ array ( '11.2 ' , -1 , '11.1 ' ),
85
+ array ( '10.9 ' , 1 , '11.0 ' ),
86
+ array ( '11.0 ' , -1 , '10.9 ' ),
87
+ array ( '0.9 ' , 1 , '1.0 ' ),
88
+ array ( '1.0 ' , -1 , '0.9 ' ),
89
+ array ( '99.9 ' , 1 , '100.0 ' ),
90
+ array ( '100.0 ' , -1 , '99.9 ' ),
76
91
);
77
92
}
93
+
94
+ public function tear_down () {
95
+ delete_transient ( $ this ->info_transient_key );
96
+ parent ::tear_down ();
97
+ }
78
98
}
0 commit comments