* Tests for UtfNormal::cleanUp() function.
*
* Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.org/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
( $i > UNICODE_SURROGATE_LAST && $i < 0xfffe ) ||
( $i > 0xffff && $i <= UNICODE_MAX )
) {
- if ( isset( UtfNormal::$utfCanonicalComp[$char] ) || isset( UtfNormal::$utfCanonicalDecomp[$char] ) ) {
+ if ( isset( UtfNormal::$utfCanonicalComp[$char] )
+ || isset( UtfNormal::$utfCanonicalDecomp[$char] )
+ ) {
$comp = UtfNormal::NFC( $char );
$this->assertEquals(
bin2hex( $comp ),
}
/** @todo document */
- public function testAllBytes() {
- $this->doTestBytes( '', '' );
- $this->doTestBytes( 'x', '' );
- $this->doTestBytes( '', 'x' );
- $this->doTestBytes( 'x', 'x' );
+ public function provideAllBytes() {
+ return array(
+ array( '', '' ),
+ array( 'x', '' ),
+ array( '', 'x' ),
+ array( 'x', 'x' ),
+ );
}
- /** @todo document */
- function doTestBytes( $head, $tail ) {
+ /**
+ * @dataProvider provideAllBytes
+ * @todo document
+ */
+ function testBytes( $head, $tail ) {
for ( $i = 0x0; $i < 256; $i++ ) {
$char = $head . chr( $i ) . $tail;
$clean = UtfNormal::cleanUp( $char );
}
}
- /** @todo document */
- public function testDoubleBytes() {
- $this->doTestDoubleBytes( '', '' );
- $this->doTestDoubleBytes( 'x', '' );
- $this->doTestDoubleBytes( '', 'x' );
- $this->doTestDoubleBytes( 'x', 'x' );
- }
-
/**
+ * @dataProvider provideAllBytes
* @todo document
*/
- function doTestDoubleBytes( $head, $tail ) {
+ function testDoubleBytes( $head, $tail ) {
for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
for ( $second = 0x80; $second < 0x100; $second += 2 ) {
$char = $head . chr( $first ) . chr( $second ) . $tail;
}
}
- /** @todo document */
- public function testTripleBytes() {
- $this->doTestTripleBytes( '', '' );
- $this->doTestTripleBytes( 'x', '' );
- $this->doTestTripleBytes( '', 'x' );
- $this->doTestTripleBytes( 'x', 'x' );
- }
-
- /** @todo document */
- function doTestTripleBytes( $head, $tail ) {
+ /**
+ * @dataProvider provideAllBytes
+ * @todo document
+ */
+ function testTripleBytes( $head, $tail ) {
for ( $first = 0xc0; $first < 0x100; $first += 2 ) {
for ( $second = 0x80; $second < 0x100; $second += 2 ) {
#for( $third = 0x80; $third < 0x100; $third++ ) {
}
} elseif ( $first > 0xc1 && $first < 0xe0 && $second < 0xc0 ) {
$this->assertEquals(
- bin2hex( UtfNormal::NFC( $head . chr( $first ) . chr( $second ) ) . UTF8_REPLACEMENT . $tail ),
+ bin2hex( UtfNormal::NFC( $head . chr( $first ) .
+ chr( $second ) ) . UTF8_REPLACEMENT . $tail ),
bin2hex( $clean ),
"Valid 2-byte $x + broken tail" );
} elseif ( $second > 0xc1 && $second < 0xe0 && $third < 0xc0 ) {
$this->assertEquals(
- bin2hex( $head . UTF8_REPLACEMENT . UtfNormal::NFC( chr( $second ) . chr( $third ) . $tail ) ),
+ bin2hex( $head . UTF8_REPLACEMENT .
+ UtfNormal::NFC( chr( $second ) . chr( $third ) . $tail ) ),
bin2hex( $clean ),
"Broken head + valid 2-byte $x" );
} elseif ( ( $first > 0xfd || $second > 0xfd ) &&