Index: tests/phpunit/tests/option/sanitize-option.php
===================================================================
--- tests/phpunit/tests/option/sanitize-option.php	(revision 0)
+++ tests/phpunit/tests/option/sanitize-option.php	(working copy)
@@ -0,0 +1,141 @@
+<?php
+
+/**
+ * @group option
+ */
+class Tests_Sanitize_Option extends WP_UnitTestCase {
+
+
+	function test_sanitize_option_admin_email(){
+		$original = 'mail@email.com';
+		$sanitized = sanitize_option( 'admin_email', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_page_on_front(){
+		$original = 0;
+		$sanitized = sanitize_option( 'page_on_front', $original );
+		$this->assertEquals( '0', $sanitized );
+	}
+
+	function test_sanitize_option_posts_per_page(){
+		$original = 10;
+		$sanitized = sanitize_option( 'posts_per_page', $original );
+		$this->assertEquals( '10', $sanitized );
+	}
+
+	function test_sanitize_option_default_ping_status(){
+		$original = 'open';
+		$sanitized = sanitize_option( 'default_ping_status', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_blogname(){
+		$original = 'My Site';
+		$sanitized = sanitize_option( 'blogname', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_blog_charset(){
+		$original = 'UTF-8';
+		$sanitized = sanitize_option( 'blog_charset', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_blog_public(){
+		$original = '1';
+		$sanitized = sanitize_option( 'blog_public', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_date_format(){
+		$original = 'F j, Y';
+		$sanitized = sanitize_option( 'date_format', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_ping_sites(){
+		$original = 'http://rpc.pingomatic.com/';
+		$sanitized = sanitize_option( 'ping_sites', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_gmt_offset(){
+		$original = 0;
+		$sanitized = sanitize_option( 'gmt_offset', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_siteurl(){
+		$original = 'http://example.org';
+		$sanitized = sanitize_option( 'siteurl', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_home(){
+		$original = 'http://example.org';
+		$sanitized = sanitize_option( 'home', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_WPLANG(){
+		$original = 0;
+		$sanitized = sanitize_option( 'WPLANG', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_illegal_names(){
+		$original = array( 'www', 'web', 'root', 'admin', 'main', 'invite', 'administrator', 'files' );
+		$sanitized = sanitize_option( 'illegal_names', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_banned_email_domains(){
+		$original = array( 'mail.com', 'gmail.com' );
+		$sanitized = sanitize_option( 'banned_email_domains', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_timezone_string(){
+		$original = 0;
+		$sanitized = sanitize_option( 'timezone_string', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_permalink_structure(){
+		$original = 0;
+		$sanitized = sanitize_option( 'permalink_structure', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_default_role(){
+		$original = 'subscriber';
+		$sanitized = sanitize_option( 'default_role', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+	function test_sanitize_option_moderation_keys(){
+		$original = 'string of words';
+		$sanitized = sanitize_option( 'moderation_keys', $original );
+		$this->assertEquals( $original, $sanitized );
+	}
+
+
+	public function upload_path_provider()  {
+		return array(
+			array( '<a href="http://www.website.com">Link</a>', 'Link' ),
+			array( '<script>url</script>', 'url' ),
+			array( '/path/to/things', '/path/to/things' ),
+			array( '\path\to\things', '\path\to\things' ),
+		);
+	}
+
+	/**
+	 * @dataProvider upload_path_provider
+	 */
+	function test_sanitize_option_upload_path( $provided, $expected ) {
+		$this->assertEquals( $expected , sanitize_option( 'upload_path', $provided ) );
+	}
+
+
+}
\ No newline at end of file
