Security update for Core, with self-updated composer
[yaffs-website] / vendor / gabordemooij / redbean / testing / RedUNIT / Base / Typechecking.php
diff --git a/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Typechecking.php b/vendor/gabordemooij/redbean/testing/RedUNIT/Base/Typechecking.php
deleted file mode 100644 (file)
index ae3dc31..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-
-namespace RedUNIT\Base;
-
-use RedUNIT\Base as Base;
-use RedBeanPHP\Facade as R;
-use RedBeanPHP\RedException as RedException;
-use RedBeanPHP\OODBBean as OODBBean;
-
-/**
- * Typechecking
- *
- * Tests whether RedBeanPHP handles type casting correctly.
- *
- * @file    RedUNIT/Base/Typechecking.php
- * @desc    Tests basic bean validation rules; invalid bean handling.
- * @author  Gabor de Mooij and the RedBeanPHP Community
- * @license New BSD/GPLv2
- *
- * (c) G.J.G.T. (Gabor) de Mooij and the RedBeanPHP Community.
- * This source file is subject to the New BSD/GPLv2 License that is bundled
- * with this source code in the file license.txt.
- */
-class Typechecking extends Base
-{
-       /**
-        * Test types.
-        * Test how RedBeanPHP OODB and OODBBean handle type and type casts.
-        *
-        * Rules:
-        *
-        * 1. before storing a bean all types are preserved except booleans (they are converted to STRINGS '0' or '1')
-        * 2. after store-reload all bean property values are STRINGS or NULL
-        *    (or ARRAYS but that's only from a user perspective because these are lazy loaded)
-        * 3. the ID returned by store() is an INTEGER (if possible; on 32 bit systems overflowing values will be cast to STRINGS!)
-        *
-        * After loading:
-        * ALL VALUES EXCEPT NULL -> STRING
-        * NULL -> NULL
-        *
-        * @note Why not simply return bean->id in store()? Because not every driver returns the same type:
-        * databases without insert_id support require a separate query or a suffix returning STRINGS, not INTEGERS.
-        *
-        * @note Why not preserve types? I.e. I store integer, why do I get back a string?
-        * Answer: types are handled different across database platforms, would cause overhead to inspect every value for type,
-        * also PHP is a dynamically typed language so types should not matter that much. Another reason: due to the nature
-        * of RB columns in the database might change (INT -> STRING) this would cause return types to change as well which would
-        * cause 'cascading errors', i.e. a column gets widened and suddenly your code would break.
-        *
-        * @note Unfortunately the 32/64-bit issue cannot be tested fully. Return-strategy store() is probably the safest
-        * solution.
-        *
-        * @return void
-        */
-       public function testTypes()
-       {
-               testpack( 'Beans can only contain STRING and NULL after reload' );
-               R::nuke();
-               $bean = R::dispense( 'bean' );
-               $bean->number   = 123;
-               $bean->float    = 12.3;
-               $bean->bool     = false;
-               $bean->bool2    = true;
-               $bean->text     = 'abc';
-               $bean->null     = null;
-               $bean->datetime = new\DateTime( 'NOW', new\DateTimeZone( 'Europe/Amsterdam' ) );
-               $id = R::store( $bean );
-               asrt( is_int( $id ), TRUE );
-               asrt( is_float( $bean->float ), TRUE );
-               asrt( is_integer( $bean->number ), TRUE );
-               asrt( is_string( $bean->bool ), TRUE );
-               asrt( is_string( $bean->bool2 ), TRUE );
-               asrt( is_string( $bean->datetime ), TRUE );
-               asrt( is_string( $bean->text ), TRUE );
-               asrt( is_null( $bean->null ), TRUE );
-               $bean = R::load('bean', $id );
-               asrt( is_string( $bean->id ), TRUE );
-               asrt( is_string( $bean->float ), TRUE );
-               asrt( is_string( $bean->number ), TRUE );
-               asrt( is_string( $bean->bool ), TRUE );
-               asrt( is_string( $bean->bool2 ), TRUE );
-               asrt( is_string( $bean->datetime ), TRUE );
-               asrt( is_string( $bean->text ), TRUE );
-               asrt( is_null( $bean->null ), TRUE );
-               asrt( $bean->bool, '0' );
-               asrt( $bean->bool2, '1' );
-       }
-
-       /**
-        * Test bean type checking.
-        *
-        * @return void
-        */
-       public function testBeanTypeChecking()
-       {
-               $redbean = R::getRedBean();
-               $bean    = $redbean->dispense( "page" );
-               // Set some illegal values in the bean; this should trigger Security exceptions.
-               // Arrays are not allowed.
-               $bean->name = array( "1" );
-               try {
-                       $redbean->store( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               try {
-                       $redbean->check( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               $bean->name = new OODBBean;
-               try {
-                       $redbean->check( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               // Property names should be alphanumeric
-               $prop        = ".";
-               $bean->$prop = 1;
-               try {
-                       $redbean->store( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               try {
-                       $redbean->check( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               // Really...
-               $prop        = "-";
-               $bean->$prop = 1;
-               try {
-                       $redbean->store( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-               try {
-                       $redbean->check( $bean );
-                       fail();
-               } catch ( RedException $e ) {
-                       pass();
-               }
-       }
-}