assertSame( 'Boom" onmouseover="alert(1) & Co', $escaped );
$this->assertStringNotContainsString( '" onmouseover="', $escaped );
}
public function testHtmlTitleUsesKsesWithoutDoubleEncodingEntities() {
CE_Test_State::$titles[7] = 'A & B
';
$this->assertSame(
CE_KSES_SENTINEL . 'A & B
',
ceo_title_for_html( 7 )
);
$this->assertSame(
array( 'A & B
' ),
CE_Test_State::$kses_calls
);
}
public function testCastOutputEscapesSlugAttributesAndFiltersVisibleMarkup() {
$character = new stdClass();
$character->slug = 'hero" onclick="alert(1)';
$character->name = 'Hero & Friend';
$character->description = 'Bio';
$character->count = 1;
$output = ceo_cast_display( $character, false, true );
$this->assertStringContainsString( 'character-hero" onclick="alert(1)', $output );
$this->assertStringNotContainsString( 'class="cast-pic character-hero" onclick="', $output );
$this->assertStringContainsString( CE_KSES_SENTINEL . $character->name, $output );
$this->assertStringContainsString( CE_KSES_SENTINEL . $character->description, $output );
}
public function testUnknownCharacterShortcodeEscapesTheReflectedName() {
$output = ceo_cast_page(
array( 'character' => '
' )
);
$this->assertStringContainsString( '<img src=x onerror=alert(1)>', $output );
$this->assertStringNotContainsString( '
Thanks & welcome';
try {
$output = ceo_display_buycomic( array( 'thanks' => $message ) );
} finally {
unset( $_REQUEST['action'] );
}
$this->assertStringContainsString( CE_KSES_SENTINEL . $message, $output );
$this->assertContains( $message, CE_Test_State::$kses_calls );
}
}