Skip to content

Commit 609f25f

Browse files
Tests: Move wp_dropdown_languages() tests to their own file.
This aims to make the tests more discoverable and easier to expand. Follow-up to [36631], [39169], [43359], [44514]. See #64225. git-svn-id: https://develop.svn.wordpress.org/trunk@62208 602fd350-edb4-49c9-b593-d223f7449a82
1 parent b10d2f9 commit 609f25f

File tree

2 files changed

+167
-169
lines changed

2 files changed

+167
-169
lines changed

tests/phpunit/tests/l10n.php

Lines changed: 0 additions & 169 deletions
Original file line numberDiff line numberDiff line change
@@ -126,175 +126,6 @@ public function test_wp_get_installed_translations_for_core() {
126126
$this->assertSame( 'GlotPress/4.0.0-beta.2', $data_en_gb['X-Generator'] );
127127
}
128128

129-
/**
130-
* @ticket 35294
131-
*
132-
* @covers ::wp_dropdown_languages
133-
*/
134-
public function test_wp_dropdown_languages() {
135-
$args = array(
136-
'id' => 'foo',
137-
'name' => 'bar',
138-
'languages' => array( 'de_DE' ),
139-
'translations' => $this->wp_dropdown_languages_filter(),
140-
'selected' => 'de_DE',
141-
'echo' => false,
142-
);
143-
$actual = wp_dropdown_languages( $args );
144-
145-
$this->assertStringContainsString( 'id="foo"', $actual );
146-
$this->assertStringContainsString( 'name="bar"', $actual );
147-
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
148-
$this->assertStringContainsString( '<option value="de_DE" lang="de" selected=\'selected\' data-installed="1">Deutsch</option>', $actual );
149-
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
150-
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
151-
}
152-
153-
/**
154-
* @ticket 38632
155-
*
156-
* @covers ::wp_dropdown_languages
157-
*/
158-
public function test_wp_dropdown_languages_site_default() {
159-
$args = array(
160-
'id' => 'foo',
161-
'name' => 'bar',
162-
'languages' => array( 'de_DE' ),
163-
'translations' => $this->wp_dropdown_languages_filter(),
164-
'selected' => 'de_DE',
165-
'echo' => false,
166-
'show_option_site_default' => true,
167-
);
168-
$actual = wp_dropdown_languages( $args );
169-
170-
$this->assertStringContainsString( 'id="foo"', $actual );
171-
$this->assertStringContainsString( 'name="bar"', $actual );
172-
$this->assertStringContainsString( '<option value="site-default" data-installed="1">Site Default</option>', $actual );
173-
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
174-
$this->assertStringContainsString( '<option value="de_DE" lang="de" selected=\'selected\' data-installed="1">Deutsch</option>', $actual );
175-
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
176-
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
177-
}
178-
179-
/**
180-
* @ticket 44494
181-
*
182-
* @covers ::wp_dropdown_languages
183-
*/
184-
public function test_wp_dropdown_languages_exclude_en_us() {
185-
$args = array(
186-
'id' => 'foo',
187-
'name' => 'bar',
188-
'languages' => array( 'de_DE' ),
189-
'translations' => $this->wp_dropdown_languages_filter(),
190-
'selected' => 'de_DE',
191-
'echo' => false,
192-
'show_option_en_us' => false,
193-
);
194-
$actual = wp_dropdown_languages( $args );
195-
196-
$this->assertStringNotContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
197-
}
198-
199-
/**
200-
* @ticket 38632
201-
*
202-
* @covers ::wp_dropdown_languages
203-
*/
204-
public function test_wp_dropdown_languages_en_US_selected() {
205-
$args = array(
206-
'id' => 'foo',
207-
'name' => 'bar',
208-
'languages' => array( 'de_DE' ),
209-
'translations' => $this->wp_dropdown_languages_filter(),
210-
'selected' => 'en_US',
211-
'echo' => false,
212-
);
213-
$actual = wp_dropdown_languages( $args );
214-
215-
$this->assertStringContainsString( 'id="foo"', $actual );
216-
$this->assertStringContainsString( 'name="bar"', $actual );
217-
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1" selected=\'selected\'>English (United States)</option>', $actual );
218-
$this->assertStringContainsString( '<option value="de_DE" lang="de" data-installed="1">Deutsch</option>', $actual );
219-
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
220-
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
221-
}
222-
223-
/**
224-
* Add site default language to ja_JP in dropdown
225-
*
226-
* @covers ::wp_dropdown_languages
227-
*/
228-
public function test_wp_dropdown_languages_site_default_ja_JP() {
229-
$args = array(
230-
'id' => 'foo',
231-
'name' => 'bar',
232-
'languages' => array( 'ja_JP' ),
233-
'translations' => $this->wp_dropdown_languages_filter(),
234-
'selected' => 'ja_JP',
235-
'echo' => false,
236-
'show_option_site_default' => true,
237-
);
238-
$actual = wp_dropdown_languages( $args );
239-
240-
$this->assertStringContainsString( 'id="foo"', $actual );
241-
$this->assertStringContainsString( 'name="bar"', $actual );
242-
$this->assertStringContainsString( '<option value="site-default" data-installed="1">Site Default</option>', $actual );
243-
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
244-
$this->assertStringContainsString( '<option value="de_DE" lang="de">Deutsch</option>', $actual );
245-
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
246-
$this->assertStringContainsString( '<option value="ja_JP" lang="ja" selected=\'selected\' data-installed="1">日本語</option>', $actual );
247-
}
248-
249-
/**
250-
* Select dropdown language from de_DE to ja_JP
251-
*
252-
* @covers ::wp_dropdown_languages
253-
*/
254-
public function test_wp_dropdown_languages_ja_JP_selected() {
255-
$args = array(
256-
'id' => 'foo',
257-
'name' => 'bar',
258-
'languages' => array( 'de_DE' ),
259-
'translations' => $this->wp_dropdown_languages_filter(),
260-
'selected' => 'ja_JP',
261-
'echo' => false,
262-
);
263-
$actual = wp_dropdown_languages( $args );
264-
265-
$this->assertStringContainsString( 'id="foo"', $actual );
266-
$this->assertStringContainsString( 'name="bar"', $actual );
267-
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
268-
$this->assertStringContainsString( '<option value="de_DE" lang="de" data-installed="1">Deutsch</option>', $actual );
269-
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
270-
$this->assertStringContainsString( '<option value="ja_JP" lang="ja" selected=\'selected\'>日本語</option>', $actual );
271-
}
272-
273-
/**
274-
* We don't want to call the API when testing.
275-
*
276-
* @return array
277-
*/
278-
private function wp_dropdown_languages_filter() {
279-
return array(
280-
'de_DE' => array(
281-
'language' => 'de_DE',
282-
'native_name' => 'Deutsch',
283-
'iso' => array( 'de' ),
284-
),
285-
'it_IT' => array(
286-
'language' => 'it_IT',
287-
'native_name' => 'Italiano',
288-
'iso' => array( 'it', 'ita' ),
289-
),
290-
'ja_JP' => array(
291-
'language' => 'ja_JP',
292-
'native_name' => '日本語',
293-
'iso' => array( 'ja' ),
294-
),
295-
);
296-
}
297-
298129
/**
299130
* @ticket 35284
300131
*
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
<?php
2+
3+
/**
4+
* @group l10n
5+
* @group i18n
6+
*
7+
* @covers ::wp_dropdown_languages
8+
*/
9+
class Tests_L10n_wpDropdownLanguages extends WP_UnitTestCase {
10+
11+
/**
12+
* @ticket 35294
13+
*/
14+
public function test_wp_dropdown_languages() {
15+
$args = array(
16+
'id' => 'foo',
17+
'name' => 'bar',
18+
'languages' => array( 'de_DE' ),
19+
'translations' => $this->wp_dropdown_languages_filter(),
20+
'selected' => 'de_DE',
21+
'echo' => false,
22+
);
23+
$actual = wp_dropdown_languages( $args );
24+
25+
$this->assertStringContainsString( 'id="foo"', $actual );
26+
$this->assertStringContainsString( 'name="bar"', $actual );
27+
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
28+
$this->assertStringContainsString( '<option value="de_DE" lang="de" selected=\'selected\' data-installed="1">Deutsch</option>', $actual );
29+
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
30+
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
31+
}
32+
33+
/**
34+
* @ticket 38632
35+
*/
36+
public function test_wp_dropdown_languages_site_default() {
37+
$args = array(
38+
'id' => 'foo',
39+
'name' => 'bar',
40+
'languages' => array( 'de_DE' ),
41+
'translations' => $this->wp_dropdown_languages_filter(),
42+
'selected' => 'de_DE',
43+
'echo' => false,
44+
'show_option_site_default' => true,
45+
);
46+
$actual = wp_dropdown_languages( $args );
47+
48+
$this->assertStringContainsString( 'id="foo"', $actual );
49+
$this->assertStringContainsString( 'name="bar"', $actual );
50+
$this->assertStringContainsString( '<option value="site-default" data-installed="1">Site Default</option>', $actual );
51+
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
52+
$this->assertStringContainsString( '<option value="de_DE" lang="de" selected=\'selected\' data-installed="1">Deutsch</option>', $actual );
53+
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
54+
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
55+
}
56+
57+
/**
58+
* @ticket 44494
59+
*/
60+
public function test_wp_dropdown_languages_exclude_en_us() {
61+
$args = array(
62+
'id' => 'foo',
63+
'name' => 'bar',
64+
'languages' => array( 'de_DE' ),
65+
'translations' => $this->wp_dropdown_languages_filter(),
66+
'selected' => 'de_DE',
67+
'echo' => false,
68+
'show_option_en_us' => false,
69+
);
70+
$actual = wp_dropdown_languages( $args );
71+
72+
$this->assertStringNotContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
73+
}
74+
75+
/**
76+
* @ticket 38632
77+
*/
78+
public function test_wp_dropdown_languages_en_US_selected() {
79+
$args = array(
80+
'id' => 'foo',
81+
'name' => 'bar',
82+
'languages' => array( 'de_DE' ),
83+
'translations' => $this->wp_dropdown_languages_filter(),
84+
'selected' => 'en_US',
85+
'echo' => false,
86+
);
87+
$actual = wp_dropdown_languages( $args );
88+
89+
$this->assertStringContainsString( 'id="foo"', $actual );
90+
$this->assertStringContainsString( 'name="bar"', $actual );
91+
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1" selected=\'selected\'>English (United States)</option>', $actual );
92+
$this->assertStringContainsString( '<option value="de_DE" lang="de" data-installed="1">Deutsch</option>', $actual );
93+
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
94+
$this->assertStringContainsString( '<option value="ja_JP" lang="ja">日本語</option>', $actual );
95+
}
96+
97+
/**
98+
* Add site default language to ja_JP in dropdown
99+
*/
100+
public function test_wp_dropdown_languages_site_default_ja_JP() {
101+
$args = array(
102+
'id' => 'foo',
103+
'name' => 'bar',
104+
'languages' => array( 'ja_JP' ),
105+
'translations' => $this->wp_dropdown_languages_filter(),
106+
'selected' => 'ja_JP',
107+
'echo' => false,
108+
'show_option_site_default' => true,
109+
);
110+
$actual = wp_dropdown_languages( $args );
111+
112+
$this->assertStringContainsString( 'id="foo"', $actual );
113+
$this->assertStringContainsString( 'name="bar"', $actual );
114+
$this->assertStringContainsString( '<option value="site-default" data-installed="1">Site Default</option>', $actual );
115+
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
116+
$this->assertStringContainsString( '<option value="de_DE" lang="de">Deutsch</option>', $actual );
117+
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
118+
$this->assertStringContainsString( '<option value="ja_JP" lang="ja" selected=\'selected\' data-installed="1">日本語</option>', $actual );
119+
}
120+
121+
/**
122+
* Select dropdown language from de_DE to ja_JP
123+
*/
124+
public function test_wp_dropdown_languages_ja_JP_selected() {
125+
$args = array(
126+
'id' => 'foo',
127+
'name' => 'bar',
128+
'languages' => array( 'de_DE' ),
129+
'translations' => $this->wp_dropdown_languages_filter(),
130+
'selected' => 'ja_JP',
131+
'echo' => false,
132+
);
133+
$actual = wp_dropdown_languages( $args );
134+
135+
$this->assertStringContainsString( 'id="foo"', $actual );
136+
$this->assertStringContainsString( 'name="bar"', $actual );
137+
$this->assertStringContainsString( '<option value="" lang="en" data-installed="1">English (United States)</option>', $actual );
138+
$this->assertStringContainsString( '<option value="de_DE" lang="de" data-installed="1">Deutsch</option>', $actual );
139+
$this->assertStringContainsString( '<option value="it_IT" lang="it">Italiano</option>', $actual );
140+
$this->assertStringContainsString( '<option value="ja_JP" lang="ja" selected=\'selected\'>日本語</option>', $actual );
141+
}
142+
143+
/**
144+
* We don't want to call the API when testing.
145+
*
146+
* @return array
147+
*/
148+
private function wp_dropdown_languages_filter() {
149+
return array(
150+
'de_DE' => array(
151+
'language' => 'de_DE',
152+
'native_name' => 'Deutsch',
153+
'iso' => array( 'de' ),
154+
),
155+
'it_IT' => array(
156+
'language' => 'it_IT',
157+
'native_name' => 'Italiano',
158+
'iso' => array( 'it', 'ita' ),
159+
),
160+
'ja_JP' => array(
161+
'language' => 'ja_JP',
162+
'native_name' => '日本語',
163+
'iso' => array( 'ja' ),
164+
),
165+
);
166+
}
167+
}

0 commit comments

Comments
 (0)