public function testIsInRange() { $lower = 1; $upper = 10; $value = 0; $result = Validator::isInRange($value, null, compact('lower', 'upper')); $this->assertFalse($result); $value = 1; $result = Validator::isInRange($value, null, compact('lower', 'upper')); $this->assertTrue($result); $value = 5; $result = Validator::isInRange($value, null, compact('lower', 'upper')); $this->assertTrue($result); $value = 10; $result = Validator::isInRange($value, null, compact('lower', 'upper')); $this->assertTrue($result); $value = 11; $result = Validator::isInRange($value, null, compact('lower', 'upper')); $this->assertFalse($result); $result = Validator::isInRange(-1, null, array('upper' => 1)); $this->assertTrue($result); $result = Validator::isInRange(1, null, array('upper' => 1)); $this->assertTrue($result); $result = Validator::isInRange(2, null, array('upper' => 1)); $this->assertFalse($result); $result = Validator::isInRange(2, null, array('lower' => 1)); $this->assertTrue($result); $result = Validator::isInRange(1, null, array('lower' => 1)); $this->assertTrue($result); $result = Validator::isInRange(0, null, array('lower' => 1)); $this->assertFalse($result); $this->assertTrue(Validator::isInRange(0)); }
$in = $options['in']; $unit = strtolower(array_pop($in)); if (count($in) != 2) { throw new ConfigException('You must specify an upper and lower bound for `in`.'); } if (!Validator::isInList($unit, null, ['list' => $suffixes])) { throw new ConfigException("Invalid unit `{$unit}` for size."); } if (!isset($_FILES[$options['field']]['error']) && null === $_FILES[$options['field']]) { return true; } $uploaded = $_FILES[$options['field']]; list($lowerBound, $upperBound) = $in; $lower = round($lowerBound * pow(1024, $suffixes[$unit])); $upper = round($upperBound * pow(1024, $suffixes[$unit])); return Validator::isInRange($uploaded['size'], null, compact('lower', 'upper')); }); /** * Checks to see if the uploaded file is of an allowed file type. * * In your model: * {{{ * public $validates = [ * 'avatar' => [ * [ * 'allowedFileType', * 'message' => 'Please upload a JPG, PNG or GIF image.', * 'allowed' => [ * 'image/png', * 'image/x-png', * 'image/jpeg',