PHP Classes

File: vendor/gabordemooij/redbean/testing/RedUNIT/Base/Keywords.php

Recommend this page to a friend!
  Classes of Adrian M   upMVC   vendor/gabordemooij/redbean/testing/RedUNIT/Base/Keywords.php   Download  
File: vendor/gabordemooij/redbean/testing/RedUNIT/Base/Keywords.php
Role: Class source
Content type: text/plain
Description: Class source
Class: upMVC
Pure PHP web development without other frameworks
Author: By
Last change:
Date: 1 month ago
Size: 1,756 bytes
 

Contents

Class file image Download
<?php

namespace RedUNIT\Base;

use
RedUNIT\Base as Base;
use
RedBeanPHP\Facade as R;
use
RedBeanPHP\OODBBean as OODBBean;

/**
 * Keywords
 *
 * Tests whether we can use keywords as bean types and
 * property names without running into security or stablity issues.
 * RedBeanPHP should properly escape all bean types and properties
 * so we may use whatever string we want.
 *
 * @file RedUNIT/Base/Keywords.php
 * @desc Tests for possible keyword clashes.
 * @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 Keywords extends Base
{
   
/**
     * What drivers should be loaded for this test pack?
     *
     * CUBRID has inescapable keywords :/
     *
     * @return array
     */
   
public function getTargetDrivers()
    {
        return array(
'mysql', 'pgsql', 'sqlite' ); // CUBRID excluded for now.
   
}

   
/**
     * Test if RedBeanPHP can properly handle keywords.
     *
     * @return void
     */
   
public function testKeywords()
    {
       
$keywords = array(
           
'anokeyword', 'znokeyword', 'group', 'drop',
           
'inner', 'join', 'select', 'table',
           
'int', 'cascade', 'float', 'call',
           
'in', 'status', 'order', 'limit',
           
'having', 'else', 'if', 'while',
           
'distinct', 'like'
       
);
        foreach (
$keywords as $k ) {
           
R::nuke();
           
$bean = R::dispense( $k );
           
$bean->$k = $k;
           
$id = R::store( $bean );
           
$bean = R::load( $k, $id );
           
$bean2 = R::dispense( 'other' );
           
$bean2->name = $k;
           
$bean->bean = $bean2;
           
$bean->ownBean[] = $bean2;
           
$bean->sharedBean[] = $bean2;
           
$id = R::store( $bean );
           
R::trash( $bean );
           
pass();
        }
    }
}