From f8b4c669063b49acd658b1d85194632b57350e68 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 1 Nov 2008 07:55:48 +0000 Subject: Set up unit test framework. Tweak configuration so that it only runs in command line mode, and expects to put data into test/var. Create a module to wrap it that generates a nice text-only view of the output. --- modules/unit_test/tests/Example_Test.php | 103 ++++++++++++++++++++++ modules/unit_test/tests/Valid_Helper_Test.php | 121 ++++++++++++++++++++++++++ 2 files changed, 224 insertions(+) create mode 100644 modules/unit_test/tests/Example_Test.php create mode 100644 modules/unit_test/tests/Valid_Helper_Test.php (limited to 'modules/unit_test/tests') diff --git a/modules/unit_test/tests/Example_Test.php b/modules/unit_test/tests/Example_Test.php new file mode 100644 index 00000000..4abaf0cd --- /dev/null +++ b/modules/unit_test/tests/Example_Test.php @@ -0,0 +1,103 @@ +setup_has_run = TRUE; + } + + public function setup_test() + { + $this->assert_true_strict($this->setup_has_run); + } + + public function true_false_test() + { + $var = TRUE; + $this + ->assert_true($var) + ->assert_true_strict($var) + ->assert_false( ! $var) + ->assert_false_strict( ! $var); + } + + public function equal_same_test() + { + $var = '5'; + $this + ->assert_equal($var, 5) + ->assert_not_equal($var, 6) + ->assert_same($var, '5') + ->assert_not_same($var, 5); + } + + public function type_test() + { + $this + ->assert_boolean(TRUE) + ->assert_not_boolean('TRUE') + ->assert_integer(123) + ->assert_not_integer('123') + ->assert_float(1.23) + ->assert_not_float(123) + ->assert_array(array(1, 2, 3)) + ->assert_not_array('array()') + ->assert_object(new stdClass) + ->assert_not_object('X') + ->assert_null(NULL) + ->assert_not_null(0) + ->assert_empty('0') + ->assert_not_empty('1'); + } + + public function pattern_test() + { + $var = "Kohana\n"; + $this + ->assert_pattern($var, '/^Kohana$/') + ->assert_not_pattern($var, '/^Kohana$/D'); + } + + public function array_key_test() + { + $array = array('a' => 'A', 'b' => 'B'); + $this->assert_array_key('a', $array); + } + + public function in_array_test() + { + $array = array('X', 'Y', 'Z'); + $this->assert_in_array('X', $array); + } + + public function debug_example_test() + { + foreach (array(1, 5, 6, 12, 65, 128, 9562) as $var) + { + // By supplying $var in the debug parameter, + // we can see on which number this test fails. + $this->assert_true($var < 100, $var); + } + } + + public function error_test() + { + throw new Exception; + } + +} diff --git a/modules/unit_test/tests/Valid_Helper_Test.php b/modules/unit_test/tests/Valid_Helper_Test.php new file mode 100644 index 00000000..bf35064b --- /dev/null +++ b/modules/unit_test/tests/Valid_Helper_Test.php @@ -0,0 +1,121 @@ +assert_true_strict(valid::email('address@domain.tld')) + ->assert_false_strict(valid::email('address@domain')); + } + + public function valid_email_rfc_test() + { + $this + ->assert_true_strict(valid::email_rfc('address@domain')) + ->assert_false_strict(valid::email_rfc('address.domain')); + } + + public function valid_email_domain_test() + { + // not implemented on windows platform + $var1 = (KOHANA_IS_WIN) ? TRUE : valid::email_domain('address@gmail.tld'); + $var2 = (KOHANA_IS_WIN) ? FALSE : valid::email_domain('address@domain-should_not-exist.tld'); + $this + ->assert_true_strict($var1) + ->assert_false_strict($var2); + } + public function valid_url_test() + { + $this + ->assert_true_strict(valid::url('http://www.kohanaphp.com')) + ->assert_false_strict(valid::url('www.kohanaphp.com')); + } + + public function valid_ip_test() + { + $this + ->assert_true_strict(valid::ip('75.125.175.50')) // valid - kohanaphp.com + ->assert_true_strict(valid::ip('127.0.0.1')) // valid - local loopback + ->assert_false_strict(valid::ip('256.257.258.259')) // invalid ip + ->assert_false_strict(valid::ip('255.255.255.255')) // invalid - reserved range + ->assert_false_strict(valid::ip('192.168.0.1')); // invalid - private range + } + + public function valid_credit_card_test() + { + $this + ->assert_true_strict(valid::credit_card('4222222222222')) // valid visa test nr + ->assert_true_strict(valid::credit_card('4012888888881881')) // valid visa test nr + ->assert_true_strict(valid::credit_card('5105105105105100')) // valid mastercard test nr + ->assert_true_strict(valid::credit_card('6011111111111117')) // valid discover test nr + ->assert_false_strict(valid::credit_card('6011111111111117', 'visa')); // invalid visa test nr + } + + public function valid_phone_test() + { + $this + ->assert_true_strict(valid::phone('0163634840')) + ->assert_true_strict(valid::phone('+27173634840')) + ->assert_false_strict(valid::phone('123578')); + } + + public function valid_alpha_test() + { + $this + ->assert_true_strict(valid::alpha('abc')) + ->assert_false_strict(valid::alpha('123')); + } + + public function valid_alpha_numeric_test() + { + $this + ->assert_true_strict(valid::alpha_numeric('abc123')) + ->assert_false_strict(valid::alpha_numeric('123*.*')); + } + + public function valid_alpha_dash_test() + { + $this + ->assert_true_strict(valid::alpha_dash('_ab-12')) + ->assert_false_strict(valid::alpha_dash('ab_ 123 !')); + } + + public function valid_digit_test() + { + $this + ->assert_true_strict(valid::digit('123')) + ->assert_false_strict(valid::digit('abc')); + } + + public function valid_numeric_test() + { + $this + ->assert_true_strict(valid::numeric(-12.99)) + ->assert_false_strict(valid::numeric('123_4')); + } + + public function valid_standard_text_test() + { + $this + ->assert_true_strict(valid::standard_text('some valid_text-to.test 123')) + ->assert_false_strict(valid::standard_text('some !real| ju0n_%k')); + } + + public function valid_decimal_test() + { + $this + ->assert_true_strict(valid::decimal(12.99)) + ->assert_false_strict(valid::decimal(12,99)); + } +} // End Valid Helper Test Controller -- cgit v1.2.3