| | 1180 | public function test_locale_user() { |
| | 1181 | |
| | 1182 | $locale = get_locale(); |
| | 1183 | |
| | 1184 | $user = self::factory()->user->create( array( |
| | 1185 | 'locale' => 'es_ES', |
| | 1186 | 'role' => 'administrator', |
| | 1187 | ) ); |
| | 1188 | wp_set_current_user( $user ); |
| | 1189 | |
| | 1190 | $_GET['_locale'] = 'user'; |
| | 1191 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1192 | |
| | 1193 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1194 | $json = rest_get_server()->sent_body; |
| | 1195 | |
| | 1196 | $decoded = json_decode( $json, true ); |
| | 1197 | |
| | 1198 | $this->assertInternalType( 'array', $decoded ); |
| | 1199 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1200 | $this->assertEquals( 'Entradas', $decoded['name'] ); |
| | 1201 | $this->assertEquals( $locale, get_locale() ); |
| | 1202 | |
| | 1203 | restore_previous_locale(); |
| | 1204 | } |
| | 1205 | |
| | 1206 | public function test_locale_user_none_set() { |
| | 1207 | |
| | 1208 | $locale = get_locale(); |
| | 1209 | |
| | 1210 | $user = self::factory()->user->create( array( |
| | 1211 | 'role' => 'administrator', |
| | 1212 | ) ); |
| | 1213 | wp_set_current_user( $user ); |
| | 1214 | |
| | 1215 | $_GET['_locale'] = 'user'; |
| | 1216 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1217 | |
| | 1218 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1219 | $json = rest_get_server()->sent_body; |
| | 1220 | |
| | 1221 | $decoded = json_decode( $json, true ); |
| | 1222 | |
| | 1223 | $this->assertInternalType( 'array', $decoded ); |
| | 1224 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1225 | $this->assertEquals( 'Posts', $decoded['name'] ); |
| | 1226 | $this->assertEquals( $locale, get_locale() ); |
| | 1227 | |
| | 1228 | restore_previous_locale(); |
| | 1229 | } |
| | 1230 | |
| | 1231 | public function test_locale_user_logged_out() { |
| | 1232 | |
| | 1233 | $_GET['_locale'] = 'user'; |
| | 1234 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1235 | |
| | 1236 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1237 | $json = rest_get_server()->sent_body; |
| | 1238 | |
| | 1239 | $decoded = json_decode( $json, true ); |
| | 1240 | |
| | 1241 | $this->assertInternalType( 'array', $decoded ); |
| | 1242 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1243 | $this->assertEquals( 'Posts', $decoded['name'] ); |
| | 1244 | |
| | 1245 | restore_previous_locale(); |
| | 1246 | } |
| | 1247 | |
| | 1248 | public function test_locale_site() { |
| | 1249 | |
| | 1250 | $locale = get_locale(); |
| | 1251 | |
| | 1252 | $user = self::factory()->user->create( array( |
| | 1253 | 'role' => 'administrator', |
| | 1254 | ) ); |
| | 1255 | wp_set_current_user( $user ); |
| | 1256 | |
| | 1257 | $_GET['_locale'] = 'site'; |
| | 1258 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1259 | |
| | 1260 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1261 | $json = rest_get_server()->sent_body; |
| | 1262 | |
| | 1263 | $decoded = json_decode( $json, true ); |
| | 1264 | |
| | 1265 | $this->assertInternalType( 'array', $decoded ); |
| | 1266 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1267 | $this->assertEquals( 'Posts', $decoded['name'] ); |
| | 1268 | $this->assertEquals( $locale, get_locale() ); |
| | 1269 | |
| | 1270 | restore_previous_locale(); |
| | 1271 | } |
| | 1272 | |
| | 1273 | public function test_locale_site_logged_out() { |
| | 1274 | |
| | 1275 | $_GET['_locale'] = 'site'; |
| | 1276 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1277 | |
| | 1278 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1279 | $json = rest_get_server()->sent_body; |
| | 1280 | |
| | 1281 | $decoded = json_decode( $json, true ); |
| | 1282 | |
| | 1283 | $this->assertInternalType( 'array', $decoded ); |
| | 1284 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1285 | $this->assertEquals( 'Posts', $decoded['name'] ); |
| | 1286 | |
| | 1287 | restore_previous_locale(); |
| | 1288 | } |
| | 1289 | |
| | 1290 | public function test_locale_site_already_switched_retains_switch() { |
| | 1291 | |
| | 1292 | switch_to_locale( 'de_DE' ); |
| | 1293 | |
| | 1294 | $user = self::factory()->user->create( array( |
| | 1295 | 'locale' => 'es_ES', |
| | 1296 | 'role' => 'administrator', |
| | 1297 | ) ); |
| | 1298 | wp_set_current_user( $user ); |
| | 1299 | |
| | 1300 | $_GET['_locale'] = 'site'; |
| | 1301 | $_REQUEST['_wpnonce'] = wp_create_nonce( 'wp_rest' ); |
| | 1302 | |
| | 1303 | rest_get_server()->serve_request( '/wp/v2/types/post' ); |
| | 1304 | $json = rest_get_server()->sent_body; |
| | 1305 | |
| | 1306 | $decoded = json_decode( $json, true ); |
| | 1307 | |
| | 1308 | $this->assertInternalType( 'array', $decoded ); |
| | 1309 | $this->assertArrayHasKey( 'name', $decoded ); |
| | 1310 | $this->assertEquals( 'Beiträge', $decoded['name'] ); |
| | 1311 | $this->assertEquals( 'de_DE', get_locale() ); |
| | 1312 | |
| | 1313 | restore_previous_locale(); |
| | 1314 | } |
| | 1315 | |