Alexander Kochetov
12 years ago
414 changed files with 36478 additions and 35725 deletions
@ -0,0 +1,50 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit; |
||||
|
||||
class DatabaseTestCase extends TestCase |
||||
{ |
||||
protected $database; |
||||
protected $driverName = 'mysql'; |
||||
protected $db; |
||||
|
||||
protected function setUp() |
||||
{ |
||||
$databases = $this->getParam('databases'); |
||||
$this->database = $databases[$this->driverName]; |
||||
$pdo_database = 'pdo_'.$this->driverName; |
||||
|
||||
if (!extension_loaded('pdo') || !extension_loaded($pdo_database)) { |
||||
$this->markTestSkipped('pdo and pdo_'.$pdo_database.' extension are required.'); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* @param bool $reset whether to clean up the test database |
||||
* @param bool $open whether to open and populate test database |
||||
* @return \yii\db\Connection |
||||
*/ |
||||
public function getConnection($reset = true, $open = true) |
||||
{ |
||||
if (!$reset && $this->db) { |
||||
return $this->db; |
||||
} |
||||
$db = new \yii\db\Connection; |
||||
$db->dsn = $this->database['dsn']; |
||||
if (isset($this->database['username'])) { |
||||
$db->username = $this->database['username']; |
||||
$db->password = $this->database['password']; |
||||
} |
||||
if ($open) { |
||||
$db->open(); |
||||
$lines = explode(';', file_get_contents($this->database['fixture'])); |
||||
foreach ($lines as $line) { |
||||
if (trim($line) !== '') { |
||||
$db->pdo->exec($line); |
||||
} |
||||
} |
||||
} |
||||
$this->db = $db; |
||||
return $db; |
||||
} |
||||
} |
@ -1,10 +1,16 @@
|
||||
<?php |
||||
|
||||
return array( |
||||
'mysql' => array( |
||||
'dsn' => 'mysql:host=127.0.0.1;dbname=yiitest', |
||||
'username' => 'travis', |
||||
'password' => '', |
||||
'fixture' => __DIR__ . '/mysql.sql', |
||||
), |
||||
'databases' => array( |
||||
'mysql' => array( |
||||
'dsn' => 'mysql:host=127.0.0.1;dbname=yiitest', |
||||
'username' => 'travis', |
||||
'password' => '', |
||||
'fixture' => __DIR__ . '/mysql.sql', |
||||
), |
||||
'sqlite' => array( |
||||
'dsn' => 'sqlite::memory:', |
||||
'fixture' => __DIR__ . '/sqlite.sql', |
||||
), |
||||
) |
||||
); |
||||
|
@ -1,262 +1,88 @@
|
||||
CREATE TABLE users |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY, |
||||
username VARCHAR(128) NOT NULL, |
||||
password VARCHAR(128) NOT NULL, |
||||
email VARCHAR(128) NOT NULL |
||||
); |
||||
|
||||
INSERT INTO users(id,username,password,email) VALUES (1,'user1','pass1','email1'); |
||||
INSERT INTO users(id,username,password,email) VALUES (2,'user2','pass2','email2'); |
||||
INSERT INTO users(id,username,password,email) VALUES (3,'user3','pass3','email3'); |
||||
INSERT INTO users(id,username,password,email) VALUES (4,'user4','pass4','email4'); |
||||
|
||||
CREATE TABLE groups |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY, |
||||
name VARCHAR(128) NOT NULL |
||||
); |
||||
|
||||
INSERT INTO groups(id,name) VALUES (1,'group1'); |
||||
INSERT INTO groups(id,name) VALUES (2,'group2'); |
||||
INSERT INTO groups(id,name) VALUES (3,'group3'); |
||||
INSERT INTO groups(id,name) VALUES (4,'group4'); |
||||
INSERT INTO groups(id,name) VALUES (5,'group5'); |
||||
INSERT INTO groups(id,name) VALUES (6,'group6'); |
||||
|
||||
CREATE TABLE groups_descriptions |
||||
( |
||||
group_id INTEGER NOT NULL PRIMARY KEY, |
||||
name VARCHAR(128) NOT NULL |
||||
); |
||||
|
||||
INSERT INTO groups_descriptions(group_id,name) VALUES (1,'room1'); |
||||
INSERT INTO groups_descriptions(group_id,name) VALUES (2,'room2'); |
||||
INSERT INTO groups_descriptions(group_id,name) VALUES (3,'room3'); |
||||
INSERT INTO groups_descriptions(group_id,name) VALUES (4,'room4'); |
||||
|
||||
CREATE TABLE roles |
||||
( |
||||
user_id INTEGER NOT NULL, |
||||
group_id INTEGER NOT NULL, |
||||
name VARCHAR(128) NOT NULL, |
||||
PRIMARY KEY(user_id,group_id) |
||||
); |
||||
|
||||
INSERT INTO roles(user_id,group_id,name) VALUES (1,1,'dev'); |
||||
INSERT INTO roles(user_id,group_id,name) VALUES (1,2,'user'); |
||||
INSERT INTO roles(user_id,group_id,name) VALUES (2,1,'dev'); |
||||
INSERT INTO roles(user_id,group_id,name) VALUES (2,3,'user'); |
||||
|
||||
CREATE TABLE mentorships |
||||
( |
||||
teacher_id INTEGER NOT NULL, |
||||
student_id INTEGER NOT NULL, |
||||
progress VARCHAR(128) NOT NULL, |
||||
PRIMARY KEY(teacher_id,student_id) |
||||
); |
||||
|
||||
INSERT INTO mentorships(teacher_id,student_id,progress) VALUES (1,3,'good'); |
||||
INSERT INTO mentorships(teacher_id,student_id,progress) VALUES (2,4,'average'); |
||||
|
||||
CREATE TABLE profiles |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
first_name VARCHAR(128) NOT NULL, |
||||
last_name VARCHAR(128) NOT NULL, |
||||
user_id INTEGER NOT NULL, |
||||
CONSTRAINT FK_profile_user FOREIGN KEY (user_id) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO profiles (first_name, last_name, user_id) VALUES ('first 1','last 1',1); |
||||
INSERT INTO profiles (first_name, last_name, user_id) VALUES ('first 2','last 2',2); |
||||
|
||||
CREATE TABLE posts |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
title VARCHAR(128) NOT NULL, |
||||
create_time TIMESTAMP NOT NULL, |
||||
author_id INTEGER NOT NULL, |
||||
content TEXT, |
||||
CONSTRAINT FK_post_author FOREIGN KEY (author_id) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 1',100000,1,'content 1'); |
||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 2',100001,2,'content 2'); |
||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 3',100002,2,'content 3'); |
||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 4',100003,2,'content 4'); |
||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 5',100004,3,'content 5'); |
||||
|
||||
|
||||
CREATE TABLE posts_nofk |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
title VARCHAR(128) NOT NULL, |
||||
create_time TIMESTAMP NOT NULL, |
||||
author_id INTEGER NOT NULL, |
||||
content TEXT |
||||
); |
||||
|
||||
INSERT INTO posts_nofk (title, create_time, author_id, content) VALUES ('post 1',100000,1,'content 1'); |
||||
INSERT INTO posts_nofk (title, create_time, author_id, content) VALUES ('post 2',100001,2,'content 2'); |
||||
INSERT INTO posts_nofk (title, create_time, author_id, content) VALUES ('post 3',100002,2,'content 3'); |
||||
INSERT INTO posts_nofk (title, create_time, author_id, content) VALUES ('post 4',100003,2,'content 4'); |
||||
INSERT INTO posts_nofk (title, create_time, author_id, content) VALUES ('post 5',100004,3,'content 5'); |
||||
|
||||
|
||||
CREATE TABLE comments |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
content TEXT NOT NULL, |
||||
post_id INTEGER NOT NULL, |
||||
author_id INTEGER NOT NULL, |
||||
CONSTRAINT FK_post_comment FOREIGN KEY (post_id) |
||||
REFERENCES posts (id) ON DELETE CASCADE ON UPDATE RESTRICT, |
||||
CONSTRAINT FK_user_comment FOREIGN KEY (author_id) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 1',1, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 2',1, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 3',1, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 4',2, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 5',2, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 6',3, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 7',3, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 8',3, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 9',3, 2); |
||||
INSERT INTO comments (content, post_id, author_id) VALUES ('comment 10',5, 3); |
||||
|
||||
CREATE TABLE categories |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
name VARCHAR(128) NOT NULL, |
||||
parent_id INTEGER, |
||||
CONSTRAINT FK_category_category FOREIGN KEY (parent_id) |
||||
REFERENCES categories (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 1',NULL); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 2',NULL); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 3',NULL); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 4',1); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 5',1); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 6',5); |
||||
INSERT INTO categories (name, parent_id) VALUES ('cat 7',5); |
||||
|
||||
CREATE TABLE post_category |
||||
( |
||||
category_id INTEGER NOT NULL, |
||||
post_id INTEGER NOT NULL, |
||||
PRIMARY KEY (category_id, post_id), |
||||
CONSTRAINT FK_post_category_post FOREIGN KEY (post_id) |
||||
REFERENCES posts (id) ON DELETE CASCADE ON UPDATE RESTRICT, |
||||
CONSTRAINT FK_post_category_category FOREIGN KEY (category_id) |
||||
REFERENCES categories (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO post_category (category_id, post_id) VALUES (1,1); |
||||
INSERT INTO post_category (category_id, post_id) VALUES (2,1); |
||||
INSERT INTO post_category (category_id, post_id) VALUES (3,1); |
||||
INSERT INTO post_category (category_id, post_id) VALUES (4,2); |
||||
INSERT INTO post_category (category_id, post_id) VALUES (1,2); |
||||
INSERT INTO post_category (category_id, post_id) VALUES (1,3); |
||||
|
||||
CREATE TABLE orders |
||||
( |
||||
key1 INTEGER NOT NULL, |
||||
key2 INTEGER NOT NULL, |
||||
name VARCHAR(128), |
||||
PRIMARY KEY (key1, key2) |
||||
); |
||||
|
||||
INSERT INTO orders (key1,key2,name) VALUES (1,2,'order 12'); |
||||
INSERT INTO orders (key1,key2,name) VALUES (1,3,'order 13'); |
||||
INSERT INTO orders (key1,key2,name) VALUES (2,1,'order 21'); |
||||
INSERT INTO orders (key1,key2,name) VALUES (2,2,'order 22'); |
||||
|
||||
CREATE TABLE items |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
name VARCHAR(128), |
||||
col1 INTEGER NOT NULL, |
||||
col2 INTEGER NOT NULL, |
||||
CONSTRAINT FK_order_item FOREIGN KEY (col1,col2) |
||||
REFERENCES orders (key1,key2) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO items (name,col1,col2) VALUES ('item 1',1,2); |
||||
INSERT INTO items (name,col1,col2) VALUES ('item 2',1,2); |
||||
INSERT INTO items (name,col1,col2) VALUES ('item 3',1,3); |
||||
INSERT INTO items (name,col1,col2) VALUES ('item 4',2,2); |
||||
INSERT INTO items (name,col1,col2) VALUES ('item 5',2,2); |
||||
|
||||
CREATE TABLE types |
||||
( |
||||
int_col INT NOT NULL, |
||||
int_col2 INTEGER DEFAULT 1, |
||||
char_col CHAR(100) NOT NULL, |
||||
char_col2 VARCHAR(100) DEFAULT 'something', |
||||
char_col3 TEXT, |
||||
float_col REAL(4,3) NOT NULL, |
||||
float_col2 DOUBLE DEFAULT 1.23, |
||||
blob_col BLOB, |
||||
numeric_col NUMERIC(5,2) DEFAULT 33.22, |
||||
time TIMESTAMP DEFAULT 123, |
||||
bool_col BOOL NOT NULL, |
||||
bool_col2 BOOLEAN DEFAULT 1, |
||||
null_col INTEGER DEFAULT NULL |
||||
); |
||||
|
||||
CREATE TABLE Content |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
||||
class VARCHAR(128), |
||||
parentID INTEGER NOT NULL, |
||||
ownerID INTEGER NOT NULL, |
||||
title VARCHAR(100), |
||||
CONSTRAINT FK_content_user FOREIGN KEY (ownerID) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
CONSTRAINT FK_content_parent FOREIGN KEY (parentID) |
||||
REFERENCES Content (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Article',-1,1,'article 1'); |
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Article',-1,2,'article 2'); |
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Comment',1,1,'comment 1'); |
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Article',-1,2,'article 3'); |
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Comment',4,2,'comment 2'); |
||||
INSERT INTO Content (class,parentID,ownerID,title) VALUES ('Comment',4,1,'comment 3'); |
||||
|
||||
CREATE TABLE Article |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY, |
||||
authorID INTEGER NOT NULL, |
||||
body TEXT, |
||||
CONSTRAINT FK_article_content FOREIGN KEY (id) |
||||
REFERENCES Content (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
CONSTRAINT FK_article_author FOREIGN KEY (authorID) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO Article (id,authorID,body) VALUES (1,1,'content for article 1'); |
||||
INSERT INTO Article (id,authorID,body) VALUES (2,2,'content for article 2'); |
||||
INSERT INTO Article (id,authorID,body) VALUES (4,1,'content for article 3'); |
||||
|
||||
CREATE TABLE Comment |
||||
( |
||||
id INTEGER NOT NULL PRIMARY KEY, |
||||
authorID INTEGER NOT NULL, |
||||
body TEXT, |
||||
CONSTRAINT FK_comment_content FOREIGN KEY (id) |
||||
REFERENCES Content (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
CONSTRAINT FK_article_author FOREIGN KEY (authorID) |
||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
||||
); |
||||
|
||||
INSERT INTO Comment (id,authorID,body) VALUES (3,1,'content for comment 1'); |
||||
INSERT INTO Comment (id,authorID,body) VALUES (5,1,'content for comment 2'); |
||||
INSERT INTO Comment (id,authorID,body) VALUES (6,1,'content for comment 3'); |
||||
|
||||
/** |
||||
* This is the database schema for testing Sqlite support of Yii DAO and Active Record. |
||||
* The database setup in config.php is required to perform then relevant tests: |
||||
*/ |
||||
|
||||
DROP TABLE IF EXISTS tbl_order_item; |
||||
DROP TABLE IF EXISTS tbl_item; |
||||
DROP TABLE IF EXISTS tbl_order; |
||||
DROP TABLE IF EXISTS tbl_category; |
||||
DROP TABLE IF EXISTS tbl_customer; |
||||
DROP TABLE IF EXISTS tbl_type; |
||||
|
||||
CREATE TABLE tbl_customer ( |
||||
id INTEGER NOT NULL, |
||||
email varchar(128) NOT NULL, |
||||
name varchar(128) NOT NULL, |
||||
address text, |
||||
status INTEGER DEFAULT 0, |
||||
PRIMARY KEY (id) |
||||
); |
||||
|
||||
CREATE TABLE tbl_category ( |
||||
id INTEGER NOT NULL, |
||||
name varchar(128) NOT NULL, |
||||
PRIMARY KEY (id) |
||||
); |
||||
|
||||
CREATE TABLE tbl_item ( |
||||
id INTEGER NOT NULL, |
||||
name varchar(128) NOT NULL, |
||||
category_id INTEGER NOT NULL, |
||||
PRIMARY KEY (id) |
||||
); |
||||
|
||||
CREATE TABLE tbl_order ( |
||||
id INTEGER NOT NULL, |
||||
customer_id INTEGER NOT NULL, |
||||
create_time INTEGER NOT NULL, |
||||
total decimal(10,0) NOT NULL, |
||||
PRIMARY KEY (id) |
||||
); |
||||
|
||||
CREATE TABLE tbl_order_item ( |
||||
order_id INTEGER NOT NULL, |
||||
item_id INTEGER NOT NULL, |
||||
quantity INTEGER NOT NULL, |
||||
subtotal decimal(10,0) NOT NULL, |
||||
PRIMARY KEY (order_id, item_id) |
||||
); |
||||
|
||||
CREATE TABLE tbl_type ( |
||||
int_col INTEGER NOT NULL, |
||||
int_col2 INTEGER DEFAULT '1', |
||||
char_col char(100) NOT NULL, |
||||
char_col2 varchar(100) DEFAULT 'something', |
||||
char_col3 text, |
||||
float_col double(4,3) NOT NULL, |
||||
float_col2 double DEFAULT '1.23', |
||||
blob_col blob, |
||||
numeric_col decimal(5,2) DEFAULT '33.22', |
||||
time timestamp NOT NULL DEFAULT '2002-01-01 00:00:00', |
||||
bool_col tinyint(1) NOT NULL, |
||||
bool_col2 tinyint(1) DEFAULT '1' |
||||
); |
||||
|
||||
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user1@example.com', 'user1', 'address1', 1); |
||||
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user2@example.com', 'user2', 'address2', 1); |
||||
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user3@example.com', 'user3', 'address3', 2); |
||||
|
||||
INSERT INTO tbl_category (name) VALUES ('Books'); |
||||
INSERT INTO tbl_category (name) VALUES ('Movies'); |
||||
|
||||
INSERT INTO tbl_item (name, category_id) VALUES ('Agile Web Application Development with Yii1.1 and PHP5', 1); |
||||
INSERT INTO tbl_item (name, category_id) VALUES ('Yii 1.1 Application Development Cookbook', 1); |
||||
INSERT INTO tbl_item (name, category_id) VALUES ('Ice Age', 2); |
||||
INSERT INTO tbl_item (name, category_id) VALUES ('Toy Story', 2); |
||||
INSERT INTO tbl_item (name, category_id) VALUES ('Cars', 2); |
||||
|
||||
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (1, 1325282384, 110.0); |
||||
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (2, 1325334482, 33.0); |
||||
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (2, 1325502201, 40.0); |
||||
|
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (1, 1, 1, 30.0); |
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (1, 2, 2, 40.0); |
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (2, 4, 1, 10.0); |
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (2, 5, 1, 15.0); |
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (2, 3, 1, 8.0); |
||||
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (3, 2, 1, 40.0); |
@ -0,0 +1,12 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\db\sqlite; |
||||
|
||||
class SqliteActiveRecordTest extends \yiiunit\framework\db\ActiveRecordTest |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
$this->driverName = 'sqlite'; |
||||
parent::setUp(); |
||||
} |
||||
} |
@ -0,0 +1,21 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\db\sqlite; |
||||
|
||||
class SqliteCommandTest extends \yiiunit\framework\db\CommandTest |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
$this->driverName = 'sqlite'; |
||||
parent::setUp(); |
||||
} |
||||
|
||||
function testAutoQuoting() |
||||
{ |
||||
$db = $this->getConnection(false); |
||||
|
||||
$sql = 'SELECT [[id]], [[t.name]] FROM {{tbl_customer}} t'; |
||||
$command = $db->createCommand($sql); |
||||
$this->assertEquals("SELECT \"id\", 't'.\"name\" FROM 'tbl_customer' t", $command->sql); |
||||
} |
||||
} |
@ -0,0 +1,47 @@
|
||||
<?php |
||||
|
||||
namespace yiiunit\framework\db\sqlite; |
||||
|
||||
class SqliteConnectionTest extends \yiiunit\framework\db\ConnectionTest |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
$this->driverName = 'sqlite'; |
||||
parent::setUp(); |
||||
} |
||||
|
||||
function testConstruct() |
||||
{ |
||||
$connection = $this->getConnection(false); |
||||
$params = $this->database; |
||||
|
||||
$this->assertEquals($params['dsn'], $connection->dsn); |
||||
} |
||||
|
||||
function testQuoteValue() |
||||
{ |
||||
$connection = $this->getConnection(false); |
||||
$this->assertEquals(123, $connection->quoteValue(123)); |
||||
$this->assertEquals("'string'", $connection->quoteValue('string')); |
||||
$this->assertEquals("'It''s interesting'", $connection->quoteValue("It's interesting")); |
||||
} |
||||
|
||||
function testQuoteTableName() |
||||
{ |
||||
$connection = $this->getConnection(false); |
||||
$this->assertEquals("'table'", $connection->quoteTableName('table')); |
||||
$this->assertEquals("'schema'.'table'", $connection->quoteTableName('schema.table')); |
||||
$this->assertEquals('{{table}}', $connection->quoteTableName('{{table}}')); |
||||
$this->assertEquals('(table)', $connection->quoteTableName('(table)')); |
||||
} |
||||
|
||||
function testQuoteColumnName() |
||||
{ |
||||
$connection = $this->getConnection(false); |
||||
$this->assertEquals('"column"', $connection->quoteColumnName('column')); |
||||
$this->assertEquals("'table'.\"column\"", $connection->quoteColumnName('table.column')); |
||||
$this->assertEquals('[[column]]', $connection->quoteColumnName('[[column]]')); |
||||
$this->assertEquals('{{column}}', $connection->quoteColumnName('{{column}}')); |
||||
$this->assertEquals('(column)', $connection->quoteColumnName('(column)')); |
||||
} |
||||
} |
@ -0,0 +1,20 @@
|
||||
<?php |
||||
/** |
||||
* Created by JetBrains PhpStorm. |
||||
* User: RusMaxim |
||||
* Date: 09.05.13 |
||||
* Time: 21:41 |
||||
* To change this template use File | Settings | File Templates. |
||||
*/ |
||||
|
||||
namespace yiiunit\framework\db\sqlite; |
||||
|
||||
|
||||
class SqliteQueryTest extends \yiiunit\framework\db\QueryTest |
||||
{ |
||||
public function setUp() |
||||
{ |
||||
$this->driverName = 'sqlite'; |
||||
parent::setUp(); |
||||
} |
||||
} |
@ -1,6 +1,6 @@
|
||||
<?php |
||||
|
||||
require(__DIR__ . '/../../../framework/yii.php'); |
||||
require(__DIR__ . '/../../../yii/Yii.php'); |
||||
|
||||
$application = new yii\web\Application('test', __DIR__ . '/protected'); |
||||
$application->run(); |
||||
|
@ -0,0 +1,72 @@
|
||||
/** |
||||
* Yii Captcha widget. |
||||
* |
||||
* This is the JavaScript widget used by the yii\widgets\Captcha widget. |
||||
* |
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
||||
* @license http://www.yiiframework.com/license/
|
||||
* @author Qiang Xue <qiang.xue@gmail.com> |
||||
* @since 2.0 |
||||
*/ |
||||
(function ($) { |
||||
$.fn.yiiCaptcha = function (method) { |
||||
if (methods[method]) { |
||||
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1)); |
||||
} else if (typeof method === 'object' || !method) { |
||||
return methods.init.apply(this, arguments); |
||||
} else { |
||||
$.error('Method ' + method + ' does not exist on jQuery.yiiCaptcha'); |
||||
return false; |
||||
} |
||||
}; |
||||
|
||||
var defaults = { |
||||
refreshUrl: undefined, |
||||
hashKey: undefined |
||||
}; |
||||
|
||||
var methods = { |
||||
init: function (options) { |
||||
return this.each(function () { |
||||
var $e = $(this); |
||||
var settings = $.extend({}, defaults, options || {}); |
||||
$e.data('yiiCaptcha', { |
||||
settings: settings |
||||
}); |
||||
|
||||
$e.on('click.yiiCaptcha', function() { |
||||
methods.refresh.apply($e); |
||||
return false; |
||||
}); |
||||
|
||||
}); |
||||
}, |
||||
|
||||
refresh: function () { |
||||
var $e = this, |
||||
settings = this.data('yiiCaptcha').settings; |
||||
$.ajax({ |
||||
url: $e.data('yiiCaptcha').settings.refreshUrl, |
||||
dataType: 'json', |
||||
cache: false, |
||||
success: function(data) { |
||||
$e.attr('src', data['url']); |
||||
$('body').data(settings.hashKey, [data['hash1'], data['hash2']]); |
||||
} |
||||
}); |
||||
}, |
||||
|
||||
destroy: function () { |
||||
return this.each(function () { |
||||
$(window).unbind('.yiiCaptcha'); |
||||
$(this).removeData('yiiCaptcha'); |
||||
}); |
||||
}, |
||||
|
||||
data: function() { |
||||
return this.data('yiiCaptcha'); |
||||
} |
||||
}; |
||||
})(window.jQuery); |
||||
|
@ -0,0 +1,26 @@
|
||||
/** |
||||
* Yii debug module. |
||||
* |
||||
* This JavaScript module provides the functions needed by the Yii debug toolbar. |
||||
* |
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
||||
* @license http://www.yiiframework.com/license/
|
||||
* @author Qiang Xue <qiang.xue@gmail.com> |
||||
* @since 2.0 |
||||
*/ |
||||
|
||||
yii.debug = (function ($) { |
||||
return { |
||||
load: function (id, url) { |
||||
$.ajax({ |
||||
url: url, |
||||
//dataType: 'json',
|
||||
success: function(data) { |
||||
var $e = $('#' + id); |
||||
$e.html(data); |
||||
} |
||||
}); |
||||
} |
||||
}; |
||||
})(jQuery); |
@ -1,7 +1,7 @@
|
||||
/** |
||||
* Yii validation module. |
||||
* |
||||
* This JavaScript module provides the validation methods for the built-in validaotrs. |
||||
* This JavaScript module provides the validation methods for the built-in validators. |
||||
* |
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue