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 |
<?php |
||||||
|
|
||||||
return array( |
return array( |
||||||
'mysql' => array( |
'databases' => array( |
||||||
'dsn' => 'mysql:host=127.0.0.1;dbname=yiitest', |
'mysql' => array( |
||||||
'username' => 'travis', |
'dsn' => 'mysql:host=127.0.0.1;dbname=yiitest', |
||||||
'password' => '', |
'username' => 'travis', |
||||||
'fixture' => __DIR__ . '/mysql.sql', |
'password' => '', |
||||||
), |
'fixture' => __DIR__ . '/mysql.sql', |
||||||
|
), |
||||||
|
'sqlite' => array( |
||||||
|
'dsn' => 'sqlite::memory:', |
||||||
|
'fixture' => __DIR__ . '/sqlite.sql', |
||||||
|
), |
||||||
|
) |
||||||
); |
); |
||||||
|
@ -1,262 +1,88 @@ |
|||||||
CREATE TABLE users |
/** |
||||||
( |
* This is the database schema for testing Sqlite support of Yii DAO and Active Record. |
||||||
id INTEGER NOT NULL PRIMARY KEY, |
* The database setup in config.php is required to perform then relevant tests: |
||||||
username VARCHAR(128) NOT NULL, |
*/ |
||||||
password VARCHAR(128) NOT NULL, |
|
||||||
email VARCHAR(128) NOT NULL |
DROP TABLE IF EXISTS tbl_order_item; |
||||||
); |
DROP TABLE IF EXISTS tbl_item; |
||||||
|
DROP TABLE IF EXISTS tbl_order; |
||||||
INSERT INTO users(id,username,password,email) VALUES (1,'user1','pass1','email1'); |
DROP TABLE IF EXISTS tbl_category; |
||||||
INSERT INTO users(id,username,password,email) VALUES (2,'user2','pass2','email2'); |
DROP TABLE IF EXISTS tbl_customer; |
||||||
INSERT INTO users(id,username,password,email) VALUES (3,'user3','pass3','email3'); |
DROP TABLE IF EXISTS tbl_type; |
||||||
INSERT INTO users(id,username,password,email) VALUES (4,'user4','pass4','email4'); |
|
||||||
|
CREATE TABLE tbl_customer ( |
||||||
CREATE TABLE groups |
id INTEGER NOT NULL, |
||||||
( |
email varchar(128) NOT NULL, |
||||||
id INTEGER NOT NULL PRIMARY KEY, |
name varchar(128) NOT NULL, |
||||||
name VARCHAR(128) NOT NULL |
address text, |
||||||
); |
status INTEGER DEFAULT 0, |
||||||
|
PRIMARY KEY (id) |
||||||
INSERT INTO groups(id,name) VALUES (1,'group1'); |
); |
||||||
INSERT INTO groups(id,name) VALUES (2,'group2'); |
|
||||||
INSERT INTO groups(id,name) VALUES (3,'group3'); |
CREATE TABLE tbl_category ( |
||||||
INSERT INTO groups(id,name) VALUES (4,'group4'); |
id INTEGER NOT NULL, |
||||||
INSERT INTO groups(id,name) VALUES (5,'group5'); |
name varchar(128) NOT NULL, |
||||||
INSERT INTO groups(id,name) VALUES (6,'group6'); |
PRIMARY KEY (id) |
||||||
|
); |
||||||
CREATE TABLE groups_descriptions |
|
||||||
( |
CREATE TABLE tbl_item ( |
||||||
group_id INTEGER NOT NULL PRIMARY KEY, |
id INTEGER NOT NULL, |
||||||
name VARCHAR(128) NOT NULL |
name varchar(128) NOT NULL, |
||||||
); |
category_id INTEGER NOT NULL, |
||||||
|
PRIMARY KEY (id) |
||||||
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'); |
CREATE TABLE tbl_order ( |
||||||
INSERT INTO groups_descriptions(group_id,name) VALUES (4,'room4'); |
id INTEGER NOT NULL, |
||||||
|
customer_id INTEGER NOT NULL, |
||||||
CREATE TABLE roles |
create_time INTEGER NOT NULL, |
||||||
( |
total decimal(10,0) NOT NULL, |
||||||
user_id INTEGER NOT NULL, |
PRIMARY KEY (id) |
||||||
group_id INTEGER NOT NULL, |
); |
||||||
name VARCHAR(128) NOT NULL, |
|
||||||
PRIMARY KEY(user_id,group_id) |
CREATE TABLE tbl_order_item ( |
||||||
); |
order_id INTEGER NOT NULL, |
||||||
|
item_id INTEGER NOT NULL, |
||||||
INSERT INTO roles(user_id,group_id,name) VALUES (1,1,'dev'); |
quantity INTEGER NOT NULL, |
||||||
INSERT INTO roles(user_id,group_id,name) VALUES (1,2,'user'); |
subtotal decimal(10,0) NOT NULL, |
||||||
INSERT INTO roles(user_id,group_id,name) VALUES (2,1,'dev'); |
PRIMARY KEY (order_id, item_id) |
||||||
INSERT INTO roles(user_id,group_id,name) VALUES (2,3,'user'); |
); |
||||||
|
|
||||||
CREATE TABLE mentorships |
CREATE TABLE tbl_type ( |
||||||
( |
int_col INTEGER NOT NULL, |
||||||
teacher_id INTEGER NOT NULL, |
int_col2 INTEGER DEFAULT '1', |
||||||
student_id INTEGER NOT NULL, |
char_col char(100) NOT NULL, |
||||||
progress VARCHAR(128) NOT NULL, |
char_col2 varchar(100) DEFAULT 'something', |
||||||
PRIMARY KEY(teacher_id,student_id) |
char_col3 text, |
||||||
); |
float_col double(4,3) NOT NULL, |
||||||
|
float_col2 double DEFAULT '1.23', |
||||||
INSERT INTO mentorships(teacher_id,student_id,progress) VALUES (1,3,'good'); |
blob_col blob, |
||||||
INSERT INTO mentorships(teacher_id,student_id,progress) VALUES (2,4,'average'); |
numeric_col decimal(5,2) DEFAULT '33.22', |
||||||
|
time timestamp NOT NULL DEFAULT '2002-01-01 00:00:00', |
||||||
CREATE TABLE profiles |
bool_col tinyint(1) NOT NULL, |
||||||
( |
bool_col2 tinyint(1) DEFAULT '1' |
||||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
); |
||||||
first_name VARCHAR(128) NOT NULL, |
|
||||||
last_name VARCHAR(128) NOT NULL, |
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user1@example.com', 'user1', 'address1', 1); |
||||||
user_id INTEGER NOT NULL, |
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user2@example.com', 'user2', 'address2', 1); |
||||||
CONSTRAINT FK_profile_user FOREIGN KEY (user_id) |
INSERT INTO tbl_customer (email, name, address, status) VALUES ('user3@example.com', 'user3', 'address3', 2); |
||||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
|
||||||
); |
INSERT INTO tbl_category (name) VALUES ('Books'); |
||||||
|
INSERT INTO tbl_category (name) VALUES ('Movies'); |
||||||
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); |
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); |
||||||
CREATE TABLE posts |
INSERT INTO tbl_item (name, category_id) VALUES ('Ice Age', 2); |
||||||
( |
INSERT INTO tbl_item (name, category_id) VALUES ('Toy Story', 2); |
||||||
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, |
INSERT INTO tbl_item (name, category_id) VALUES ('Cars', 2); |
||||||
title VARCHAR(128) NOT NULL, |
|
||||||
create_time TIMESTAMP NOT NULL, |
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (1, 1325282384, 110.0); |
||||||
author_id INTEGER NOT NULL, |
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (2, 1325334482, 33.0); |
||||||
content TEXT, |
INSERT INTO tbl_order (customer_id, create_time, total) VALUES (2, 1325502201, 40.0); |
||||||
CONSTRAINT FK_post_author FOREIGN KEY (author_id) |
|
||||||
REFERENCES users (id) ON DELETE CASCADE ON UPDATE RESTRICT |
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 posts (title, create_time, author_id, content) VALUES ('post 1',100000,1,'content 1'); |
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (2, 5, 1, 15.0); |
||||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 2',100001,2,'content 2'); |
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (2, 3, 1, 8.0); |
||||||
INSERT INTO posts (title, create_time, author_id, content) VALUES ('post 3',100002,2,'content 3'); |
INSERT INTO tbl_order_item (order_id, item_id, quantity, subtotal) VALUES (3, 2, 1, 40.0); |
||||||
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'); |
|
||||||
|
|
@ -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 |
<?php |
||||||
|
|
||||||
require(__DIR__ . '/../../../framework/yii.php'); |
require(__DIR__ . '/../../../yii/Yii.php'); |
||||||
|
|
||||||
$application = new yii\web\Application('test', __DIR__ . '/protected'); |
$application = new yii\web\Application('test', __DIR__ . '/protected'); |
||||||
$application->run(); |
$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. |
* 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/
|
* @link http://www.yiiframework.com/
|
||||||
* @copyright Copyright (c) 2008 Yii Software LLC |
* @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