| 
					
				 | 
			
			
				@@ -0,0 +1,669 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?php 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class ValidatorTest extends PHPUnit_Framework_TestCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Setup the test environment. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function setUp() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Config::set('database.default', 'sqlite'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Tear down the test environment. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function tearDown() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Config::set('database.default', 'mysql'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES = array(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the required validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testRequiredRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('name' => 'Taylor Otwell'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'required'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['name'] = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		unset($input['name']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['name']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['name']['tmp_name'] = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the confirmed validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheConfirmedRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('password' => 'foo', 'password_confirmation' => 'foo'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('password' => 'confirmed'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['password_confirmation'] = 'foo_bar'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		unset($input['password_confirmation']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the different validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheDifferentRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('password' => 'foo', 'password_confirmation' => 'bar'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('password' => 'different:password_confirmation'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['password_confirmation'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		unset($input['password_confirmation']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the accepted validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheAcceptedRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('terms' => '1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('terms' => 'accepted'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['terms'] = 'yes'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['terms'] = '2'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// The accepted rule implies required, so should fail if field not present. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		unset($input['terms']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the numeric validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheNumericRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = '1'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = 1.2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = '1.2a'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the integer validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheIntegerRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'integer'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = '0'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = 1.2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['amount'] = '1.2a'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the size validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheSizeRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|size:1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|size:1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// If no numeric rule is on the field, it is treated as a string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '111'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'size:3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'size:4'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// The size rules checks kilobytes on files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 10240; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('photo' => 'size:10'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 14000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the between validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheBetweenRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|between:1,2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|between:2,3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// If no numeric rule is on the field, it is treated as a string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '111'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'between:1,3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'between:100,111'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// The size rules checks kilobytes on files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 10240; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('photo' => 'between:9,11'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 14000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the between validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheMinRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|min:1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|min:2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// If no numeric rule is on the field, it is treated as a string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '01'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'min:2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'min:3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// The size rules checks kilobytes on files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 10240; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('photo' => 'min:9'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 8000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the between validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheMaxRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '1.21'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|max:2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|max:1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// If no numeric rule is on the field, it is treated as a string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '01'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'max:3'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'max:1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		// The size rules checks kilobytes on files 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 10240; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('photo' => 'max:11'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['size'] = 140000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the in validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheInRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('size' => 'L'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('size' => 'in:S,M,L'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['size'] = 'XL'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the not-in validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheNotInRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('size' => 'L'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('size' => 'not_in:S,M,L'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['size'] = 'XL'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the IP validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheIPRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('ip' => '192.168.1.1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('ip' => 'ip'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['ip'] = '192.111'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the e-mail validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheEmailRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('email' => 'example@gmail.com'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('email' => 'email'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['email'] = 'blas-asok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the URL validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheUrlRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('url' => 'http://www.google.com'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('url' => 'url'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['url'] = 'blas-asok'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the active URL validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheActiveUrlRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('url' => 'http://google.com'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('url' => 'active_url'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['url'] = 'http://asdlk-aselkaiwels.com'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the image validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheImageRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = path('storage').'files/desert.jpg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('photo' => 'image'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['photo']['tmp_name'] = path('app').'routes.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the alpha validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheAlphaRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('name' => 'TaylorOtwell'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'alpha'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['name'] = 'Taylor Otwell'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the alpha_num validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheAlphaNumRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('name' => 'TaylorOtwell1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'alpha_num'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['name'] = 'Taylor Otwell'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the alpha_num validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheAlphaDashRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('name' => 'Taylor-Otwell_1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'alpha_dash'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['name'] = 'Taylor Otwell'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the mimes validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testTheMimesRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['file']['tmp_name'] = path('app').'routes.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('file' => 'mimes:php,txt'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('file' => 'mimes:jpg,bmp'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['file']['tmp_name'] = path('storage').'files/desert.jpg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules['file'] = 'mimes:jpg,bmp'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules['file'] = 'mimes:txt,bmp'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($_FILES, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test the unique validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testUniqueRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('code' => 'ZZ'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('code' => 'unique:validation_unique'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('code' => 'AR'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('code' => 'unique:validation_unique,code,AR,code'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Tests the exists validation rule. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testExistsRule() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('code' => 'TX'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('code' => 'exists:validation_unique'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['code'] = array('TX', 'NY'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('code' => 'exists:validation_unique,code'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertTrue(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['code'] = array('TX', 'XX'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input['code'] = 'XX'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertFalse(Validator::make($input, $rules)->valid()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that the validator sets the correct messages. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testCorrectMessagesAreSet() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('email' => 'example-foo'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'required', 'email' => 'required|email'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$messages = $v->errors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertInstanceOf('Laravel\\Messages', $messages); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals(str_replace(':attribute', 'name', $lang['required']), $messages->first('name')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals(str_replace(':attribute', 'email', $lang['email']), $messages->first('email')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that custom messages are recognized. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testCustomMessagesAreRecognize() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$messages = array('required' => 'Required!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'required'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make(array(), $rules, $messages); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals('Required!', $v->errors->first('name')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$messages['email_required'] = 'Email Required!'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('name' => 'required', 'email' => 'required'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make(array(), $rules, $messages); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals('Required!', $v->errors->first('name')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals('Email Required!', $v->errors->first('email')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('custom' => 'required'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make(array(), $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals('This field is required!', $v->errors->first('custom')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that size replacements are made on messages. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testNumericSizeReplacementsAreMade() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => 100); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|size:80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals(str_replace(array(':attribute', ':size'), array('amount', '80'), $lang['size']['numeric']), $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|between:70,80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min', ':max'), array('amount', '70', '80'), $lang['between']['numeric']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|min:120'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min'), array('amount', '120'), $lang['min']['numeric']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'numeric|max:20'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':max'), array('amount', '20'), $lang['max']['numeric']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that string size replacements are made on messages. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testStringSizeReplacementsAreMade() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$input = array('amount' => '100'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'size:80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals(str_replace(array(':attribute', ':size'), array('amount', '80'), $lang['size']['string']), $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'between:70,80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min', ':max'), array('amount', '70', '80'), $lang['between']['string']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'min:120'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min'), array('amount', '120'), $lang['min']['string']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'max:2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($input, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':max'), array('amount', '2'), $lang['max']['string']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that string size replacements are made on messages. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testFileSizeReplacementsAreMade() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['amount']['tmp_name'] = 'foo'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['amount']['size'] = 10000; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'size:80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($_FILES, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals(str_replace(array(':attribute', ':size'), array('amount', '80'), $lang['size']['file']), $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'between:70,80'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($_FILES, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min', ':max'), array('amount', '70', '80'), $lang['between']['file']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'min:120'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($_FILES, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':min'), array('amount', '120'), $lang['min']['file']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('amount' => 'max:2'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($_FILES, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':max'), array('amount', '2'), $lang['max']['file']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('amount')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test that values get replaced in messages. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testValuesGetReplaced() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$_FILES['file']['tmp_name'] = path('storage').'files/desert.jpg'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('file' => 'mimes:php,txt'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make($_FILES, $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(array(':attribute', ':values'), array('file', 'php, txt'), $lang['mimes']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('file')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * Test custom attribute names are replaced. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 * @group laravel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public function testCustomAttributesAreReplaced() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$lang = require path('app').'language/en/validation.php'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$rules = array('test_attribute' => 'required'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v = Validator::make(array(), $rules); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$v->valid(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$expect = str_replace(':attribute', 'attribute', $lang['required']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		$this->assertEquals($expect, $v->errors->first('test_attribute')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |