mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-02-23 17:22:43 +00:00
Adds a `public` visibility to test fixtures, tests, data providers, and callbacks methods. Adds a `private` visibility to helper methods within test classes. Renames callbacks and helpers that previously started with a `_` prefix. Why? For consistency and to leverage using the method visibility. Further naming standardizations is beyond the scope of this commit. Props costdev, jrf, hellofromTonya. Fixes #54177. git-svn-id: https://develop.svn.wordpress.org/trunk@52010 602fd350-edb4-49c9-b593-d223f7449a82
280 lines
6.9 KiB
PHP
280 lines
6.9 KiB
PHP
<?php
|
|
|
|
require_once dirname( __DIR__ ) . '/canonical.php';
|
|
|
|
/**
|
|
* @group canonical
|
|
* @group rewrite
|
|
* @group query
|
|
*/
|
|
class Tests_Canonical_NoRewrite extends WP_Canonical_UnitTestCase {
|
|
|
|
// These test cases are run against the test handler in WP_Canonical.
|
|
|
|
public function set_up() {
|
|
global $wp_rewrite;
|
|
|
|
parent::set_up();
|
|
|
|
$wp_rewrite->init();
|
|
$wp_rewrite->set_permalink_structure( '' );
|
|
$wp_rewrite->flush_rules();
|
|
}
|
|
|
|
/**
|
|
* @dataProvider data
|
|
*/
|
|
public function test( $test_url, $expected, $ticket = 0, $expected_doing_it_wrong = array() ) {
|
|
$this->assertCanonical( $test_url, $expected, $ticket, $expected_doing_it_wrong );
|
|
}
|
|
|
|
public function data() {
|
|
/*
|
|
* Test URL.
|
|
* [0]: Test URL.
|
|
* [1]: Expected results: Any of the following can be used.
|
|
* array( 'url': expected redirection location, 'qv': expected query vars to be set via the rewrite AND $_GET );
|
|
* array( expected query vars to be set, same as 'qv' above );
|
|
* (string) expected redirect location.
|
|
* [3]: (optional) The ticket the test refers to. Can be skipped if unknown.
|
|
*/
|
|
return array(
|
|
array( '/?p=123', '/?p=123' ),
|
|
|
|
// This post_type arg should be stripped, because p=1 exists, and does not have post_type= in its query string.
|
|
array( '/?post_type=fake-cpt&p=1', '/?p=1' ),
|
|
|
|
// Strip an existing but incorrect post_type arg.
|
|
array( '/?post_type=page&page_id=1', '/?p=1' ),
|
|
|
|
// Trailing spaces and punctuation in query string args.
|
|
array( // Space.
|
|
'/?p=358 ',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded space.
|
|
'/?p=358%20',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Exclamation mark.
|
|
'/?p=358!',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded exclamation mark.
|
|
'/?p=358%21',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Double quote.
|
|
'/?p=358"',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded double quote.
|
|
'/?p=358%22',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Single quote.
|
|
'/?p=358\'',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded single quote.
|
|
'/?p=358%27',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Opening bracket.
|
|
'/?p=358(',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded opening bracket.
|
|
'/?p=358%28',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Closing bracket.
|
|
'/?p=358)',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded closing bracket.
|
|
'/?p=358%29',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Comma.
|
|
'/?p=358,',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded comma.
|
|
'/?p=358%2C',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Period.
|
|
'/?p=358.',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded period.
|
|
'/?p=358%2E',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Semicolon.
|
|
'/?p=358;',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded semicolon.
|
|
'/?p=358%3B',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Opening curly bracket.
|
|
'/?p=358{',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded opening curly bracket.
|
|
'/?p=358%7B',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Closing curly bracket.
|
|
'/?p=358}',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded closing curly bracket.
|
|
'/?p=358%7D',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded opening curly quote.
|
|
'/?p=358%E2%80%9C',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
array( // Encoded closing curly quote.
|
|
'/?p=358%E2%80%9D',
|
|
array(
|
|
'url' => '/?p=358',
|
|
'qv' => array( 'p' => '358' ),
|
|
),
|
|
20383,
|
|
),
|
|
|
|
// Trailing spaces and punctuation in permalinks.
|
|
array( '/page/2/ ', '/page/2/', 20383 ), // Space.
|
|
array( '/page/2/%20', '/page/2/', 20383 ), // Encoded space.
|
|
array( '/page/2/!', '/page/2/', 20383 ), // Exclamation mark.
|
|
array( '/page/2/%21', '/page/2/', 20383 ), // Encoded exclamation mark.
|
|
array( '/page/2/"', '/page/2/', 20383 ), // Double quote.
|
|
array( '/page/2/%22', '/page/2/', 20383 ), // Encoded double quote.
|
|
array( '/page/2/\'', '/page/2/', 20383 ), // Single quote.
|
|
array( '/page/2/%27', '/page/2/', 20383 ), // Encoded single quote.
|
|
array( '/page/2/(', '/page/2/', 20383 ), // Opening bracket.
|
|
array( '/page/2/%28', '/page/2/', 20383 ), // Encoded opening bracket.
|
|
array( '/page/2/)', '/page/2/', 20383 ), // Closing bracket.
|
|
array( '/page/2/%29', '/page/2/', 20383 ), // Encoded closing bracket.
|
|
array( '/page/2/,', '/page/2/', 20383 ), // Comma.
|
|
array( '/page/2/%2C', '/page/2/', 20383 ), // Encoded comma.
|
|
array( '/page/2/.', '/page/2/', 20383 ), // Period.
|
|
array( '/page/2/%2E', '/page/2/', 20383 ), // Encoded period.
|
|
array( '/page/2/;', '/page/2/', 20383 ), // Semicolon.
|
|
array( '/page/2/%3B', '/page/2/', 20383 ), // Encoded semicolon.
|
|
array( '/page/2/{', '/page/2/', 20383 ), // Opening curly bracket.
|
|
array( '/page/2/%7B', '/page/2/', 20383 ), // Encoded opening curly bracket.
|
|
array( '/page/2/}', '/page/2/', 20383 ), // Closing curly bracket.
|
|
array( '/page/2/%7D', '/page/2/', 20383 ), // Encoded closing curly bracket.
|
|
array( '/page/2/%E2%80%9C', '/page/2/', 20383 ), // Encoded opening curly quote.
|
|
array( '/page/2/%E2%80%9D', '/page/2/', 20383 ), // Encoded closing curly quote.
|
|
|
|
array( '/?page_id=1', '/?p=1' ), // Redirect page_id to p (should cover page_id|p|attachment_id to one another).
|
|
array( '/?page_id=1&post_type=revision', '/?p=1' ),
|
|
|
|
array( '/?feed=rss2&p=1', '/?feed=rss2&p=1', 21841 ),
|
|
array( '/?feed=rss&p=1', '/?feed=rss2&p=1', 24623 ),
|
|
|
|
array( '/?comp=East+(North)', '/?comp=East+(North)', 49347 ),
|
|
);
|
|
}
|
|
}
|