';
$actualValue = $this->activeField->begin();
-
+
$this->assertEquals($expectedValue, $actualValue);
}
-
- public function testBeginAttributeIsRequered()
+
+ public function testBeginAttributeIsRequired()
{
$this->helperModel->addRule($this->attributeName, 'required');
-
+
$expectedValue = '
+
item2
+HTML
+ , $output);
+ }
+
+
}
diff --git a/tests/unit/framework/widgets/SpacelessTest.php b/tests/framework/widgets/SpacelessTest.php
similarity index 100%
rename from tests/unit/framework/widgets/SpacelessTest.php
rename to tests/framework/widgets/SpacelessTest.php
diff --git a/tests/unit/runtime/.gitignore b/tests/runtime/.gitignore
similarity index 100%
rename from tests/unit/runtime/.gitignore
rename to tests/runtime/.gitignore
diff --git a/tests/unit/VendorTestCase.php b/tests/unit/VendorTestCase.php
deleted file mode 100644
index c8f7671..0000000
--- a/tests/unit/VendorTestCase.php
+++ /dev/null
@@ -1,34 +0,0 @@
-
- * @since 2.0
- */
-class ActiveRecord extends \yii\elasticsearch\ActiveRecord
-{
- public static $db;
-
- /**
- * @return \yii\elasticsearch\Connection
- */
- public static function getDb()
- {
- return self::$db;
- }
-
- public static function index()
- {
- return 'yiitest';
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/Customer.php b/tests/unit/data/ar/elasticsearch/Customer.php
deleted file mode 100644
index 1ae7caa..0000000
--- a/tests/unit/data/ar/elasticsearch/Customer.php
+++ /dev/null
@@ -1,90 +0,0 @@
-hasMany(Order::className(), ['customer_id' => 'id'])->orderBy('created_at');
- }
-
- public function getExpensiveOrders()
- {
- return $this->hasMany(Order::className(), ['customer_id' => 'id'])->filter(['range' => ['total' => ['gte' => 50]]])->orderBy('id');
- }
-
- public function getExpensiveOrdersWithNullFK()
- {
- return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->filter(['range' => ['total' => ['gte' => 50]]])->orderBy('id');
- }
-
- public function getOrdersWithNullFK()
- {
- return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->orderBy('created_at');
- }
-
- public function afterSave($insert, $changedAttributes)
- {
- ActiveRecordTest::$afterSaveInsert = $insert;
- ActiveRecordTest::$afterSaveNewRecord = $this->isNewRecord;
- parent::afterSave($insert, $changedAttributes);
- }
-
- /**
- * sets up the index for this record
- * @param Command $command
- * @param boolean $statusIsBoolean
- */
- public static function setUpMapping($command, $statusIsBoolean = false)
- {
- $command->deleteMapping(static::index(), static::type());
- $command->setMapping(static::index(), static::type(), [
- static::type() => [
- "_id" => ["path" => "id", "index" => "not_analyzed", "store" => "yes"],
- "properties" => [
- "name" => ["type" => "string", "index" => "not_analyzed"],
- "email" => ["type" => "string", "index" => "not_analyzed"],
- "address" => ["type" => "string", "index" => "analyzed"],
- "status" => $statusIsBoolean ? ["type" => "boolean"] : ["type" => "integer"],
- ]
- ]
- ]);
-
- }
-
- /**
- * @inheritdoc
- * @return CustomerQuery
- */
- public static function find()
- {
- return new CustomerQuery(get_called_class());
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/CustomerQuery.php b/tests/unit/data/ar/elasticsearch/CustomerQuery.php
deleted file mode 100644
index 746a2ec..0000000
--- a/tests/unit/data/ar/elasticsearch/CustomerQuery.php
+++ /dev/null
@@ -1,18 +0,0 @@
-andWhere(['status' => 1]);
-
- return $this;
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/Item.php b/tests/unit/data/ar/elasticsearch/Item.php
deleted file mode 100644
index 283ac7b..0000000
--- a/tests/unit/data/ar/elasticsearch/Item.php
+++ /dev/null
@@ -1,44 +0,0 @@
-deleteMapping(static::index(), static::type());
- $command->setMapping(static::index(), static::type(), [
- static::type() => [
- "_id" => ["path" => "id", "index" => "not_analyzed", "store" => "yes"],
- "properties" => [
- "name" => ["type" => "string", "index" => "not_analyzed"],
- "category_id" => ["type" => "integer"],
- ]
- ]
- ]);
-
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/Order.php b/tests/unit/data/ar/elasticsearch/Order.php
deleted file mode 100644
index 84a4555..0000000
--- a/tests/unit/data/ar/elasticsearch/Order.php
+++ /dev/null
@@ -1,126 +0,0 @@
-hasOne(Customer::className(), ['id' => 'customer_id']);
- }
-
- public function getOrderItems()
- {
- return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
- }
-
- /**
- * A relation to Item defined via array valued attribute
- */
- public function getItemsByArrayValue()
- {
- return $this->hasMany(Item::className(), ['id' => 'itemsArray'])->indexBy('id');
- }
-
- public function getItems()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems')->orderBy('id');
- }
-
- public function getItemsIndexed()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems')->indexBy('id');
- }
-
- public function getItemsWithNullFK()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItemsWithNullFK');
- }
-
- public function getOrderItemsWithNullFK()
- {
- return $this->hasMany(OrderItemWithNullFK::className(), ['order_id' => 'id']);
- }
-
- public function getItemsInOrder1()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems', function ($q) {
- $q->orderBy(['subtotal' => SORT_ASC]);
- })->orderBy('name');
- }
-
- public function getItemsInOrder2()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems', function ($q) {
- $q->orderBy(['subtotal' => SORT_DESC]);
- })->orderBy('name');
- }
-
- public function getBooks()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems')
- ->where(['category_id' => 1]);
- }
-
- public function getBooksWithNullFK()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItemsWithNullFK')
- ->where(['category_id' => 1]);
- }
-
- public function beforeSave($insert)
- {
- if (parent::beforeSave($insert)) {
-// $this->created_at = time();
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * sets up the index for this record
- * @param Command $command
- */
- public static function setUpMapping($command)
- {
- $command->deleteMapping(static::index(), static::type());
- $command->setMapping(static::index(), static::type(), [
- static::type() => [
- "_id" => ["path" => "id", "index" => "not_analyzed", "store" => "yes"],
- "properties" => [
- "customer_id" => ["type" => "integer"],
-// "created_at" => ["type" => "string", "index" => "not_analyzed"],
- "total" => ["type" => "integer"],
- ]
- ]
- ]);
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/OrderItem.php b/tests/unit/data/ar/elasticsearch/OrderItem.php
deleted file mode 100644
index 4541559..0000000
--- a/tests/unit/data/ar/elasticsearch/OrderItem.php
+++ /dev/null
@@ -1,53 +0,0 @@
-hasOne(Order::className(), ['id' => 'order_id']);
- }
-
- public function getItem()
- {
- return $this->hasOne(Item::className(), ['id' => 'item_id']);
- }
-
- /**
- * sets up the index for this record
- * @param Command $command
- */
- public static function setUpMapping($command)
- {
- $command->deleteMapping(static::index(), static::type());
- $command->setMapping(static::index(), static::type(), [
- static::type() => [
- "properties" => [
- "order_id" => ["type" => "integer"],
- "item_id" => ["type" => "integer"],
- "quantity" => ["type" => "integer"],
- "subtotal" => ["type" => "integer"],
- ]
- ]
- ]);
-
- }
-}
diff --git a/tests/unit/data/ar/elasticsearch/OrderItemWithNullFK.php b/tests/unit/data/ar/elasticsearch/OrderItemWithNullFK.php
deleted file mode 100644
index 74415c7..0000000
--- a/tests/unit/data/ar/elasticsearch/OrderItemWithNullFK.php
+++ /dev/null
@@ -1,10 +0,0 @@
-hasMany(CustomerOrder::className(), ['customer_id' => '_id']);
- }
-
- /**
- * @inheritdoc
- * @return CustomerQuery
- */
- public static function find()
- {
- return new CustomerQuery(get_called_class());
- }
-}
diff --git a/tests/unit/data/ar/mongodb/CustomerOrder.php b/tests/unit/data/ar/mongodb/CustomerOrder.php
deleted file mode 100644
index c3d406d..0000000
--- a/tests/unit/data/ar/mongodb/CustomerOrder.php
+++ /dev/null
@@ -1,31 +0,0 @@
-hasOne(Customer::className(), ['_id' => 'customer_id']);
- }
-
- public function getItems()
- {
- return $this->hasMany(Item::className(), ['_id' => 'item_ids']);
- }
-}
diff --git a/tests/unit/data/ar/mongodb/CustomerQuery.php b/tests/unit/data/ar/mongodb/CustomerQuery.php
deleted file mode 100644
index e7a9887..0000000
--- a/tests/unit/data/ar/mongodb/CustomerQuery.php
+++ /dev/null
@@ -1,18 +0,0 @@
-andWhere(['status' => 2]);
-
- return $this;
- }
-}
diff --git a/tests/unit/data/ar/mongodb/Item.php b/tests/unit/data/ar/mongodb/Item.php
deleted file mode 100644
index 63a21ac..0000000
--- a/tests/unit/data/ar/mongodb/Item.php
+++ /dev/null
@@ -1,20 +0,0 @@
-andWhere(['status' => 2]);
-
- return $this;
- }
-}
diff --git a/tests/unit/data/ar/redis/ActiveRecord.php b/tests/unit/data/ar/redis/ActiveRecord.php
deleted file mode 100644
index 0e1cc93..0000000
--- a/tests/unit/data/ar/redis/ActiveRecord.php
+++ /dev/null
@@ -1,24 +0,0 @@
-
- * @since 2.0
- */
-class ActiveRecord extends \yii\redis\ActiveRecord
-{
- public static $db;
-
- public static function getDb()
- {
- return self::$db;
- }
-}
diff --git a/tests/unit/data/ar/redis/Customer.php b/tests/unit/data/ar/redis/Customer.php
deleted file mode 100644
index 6c850ad..0000000
--- a/tests/unit/data/ar/redis/Customer.php
+++ /dev/null
@@ -1,72 +0,0 @@
-hasMany(Order::className(), ['customer_id' => 'id']);
- }
-
- /**
- * @return \yii\redis\ActiveQuery
- */
- public function getExpensiveOrders()
- {
- return $this->hasMany(Order::className(), ['customer_id' => 'id'])->andWhere("tonumber(redis.call('HGET','order' .. ':a:' .. pk, 'total')) > 50");
- }
-
- /**
- * @return \yii\redis\ActiveQuery
- */
- public function getExpensiveOrdersWithNullFK()
- {
- return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id'])->andWhere("tonumber(redis.call('HGET','order' .. ':a:' .. pk, 'total')) > 50");
- }
-
- /**
- * @return \yii\redis\ActiveQuery
- */
- public function getOrdersWithNullFK()
- {
- return $this->hasMany(OrderWithNullFK::className(), ['customer_id' => 'id']);
- }
-
- /**
- * @inheritdoc
- */
- public function afterSave($insert, $changedAttributes)
- {
- ActiveRecordTest::$afterSaveInsert = $insert;
- ActiveRecordTest::$afterSaveNewRecord = $this->isNewRecord;
- parent::afterSave($insert, $changedAttributes);
- }
-
- /**
- * @inheritdoc
- * @return CustomerQuery
- */
- public static function find()
- {
- return new CustomerQuery(get_called_class());
- }
-}
diff --git a/tests/unit/data/ar/redis/CustomerQuery.php b/tests/unit/data/ar/redis/CustomerQuery.php
deleted file mode 100644
index fc564a0..0000000
--- a/tests/unit/data/ar/redis/CustomerQuery.php
+++ /dev/null
@@ -1,18 +0,0 @@
-andWhere(['status' => 1]);
-
- return $this;
- }
-}
diff --git a/tests/unit/data/ar/redis/Item.php b/tests/unit/data/ar/redis/Item.php
deleted file mode 100644
index b06ba80..0000000
--- a/tests/unit/data/ar/redis/Item.php
+++ /dev/null
@@ -1,11 +0,0 @@
-hasOne(Customer::className(), ['id' => 'customer_id']);
- }
-
- public function getOrderItems()
- {
- return $this->hasMany(OrderItem::className(), ['order_id' => 'id']);
- }
-
- public function getItems()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems', function ($q) {
- // additional query configuration
- });
- }
-
- public function getItemsIndexed()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems')->indexBy('id');
- }
-
- public function getItemsWithNullFK()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItemsWithNullFK');
- }
-
- public function getOrderItemsWithNullFK()
- {
- return $this->hasMany(OrderItemWithNullFK::className(), ['order_id' => 'id']);
- }
-
- public function getItemsInOrder1()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems', function ($q) {
- $q->orderBy(['subtotal' => SORT_ASC]);
- })->orderBy('name');
- }
-
- public function getItemsInOrder2()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems', function ($q) {
- $q->orderBy(['subtotal' => SORT_DESC]);
- })->orderBy('name');
- }
-
- public function getBooks()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItems')
- ->where(['category_id' => 1]);
- }
-
- public function getBooksWithNullFK()
- {
- return $this->hasMany(Item::className(), ['id' => 'item_id'])
- ->via('orderItemsWithNullFK')
- ->where(['category_id' => 1]);
- }
-
- public function beforeSave($insert)
- {
- if (parent::beforeSave($insert)) {
- $this->created_at = time();
-
- return true;
- } else {
- return false;
- }
- }
-}
diff --git a/tests/unit/data/ar/redis/OrderItem.php b/tests/unit/data/ar/redis/OrderItem.php
deleted file mode 100644
index d65643d..0000000
--- a/tests/unit/data/ar/redis/OrderItem.php
+++ /dev/null
@@ -1,26 +0,0 @@
-hasOne(Order::className(), ['id' => 'order_id']);
- }
-
- public function getItem()
- {
- return $this->hasOne(Item::className(), ['id' => 'item_id']);
- }
-}
diff --git a/tests/unit/data/ar/redis/OrderItemWithNullFK.php b/tests/unit/data/ar/redis/OrderItemWithNullFK.php
deleted file mode 100644
index 1a95684..0000000
--- a/tests/unit/data/ar/redis/OrderItemWithNullFK.php
+++ /dev/null
@@ -1,24 +0,0 @@
- $this,
- 'link' => ['id' => 'id'],
- 'multiple' => false,
- ]);
- }
-}
diff --git a/tests/unit/data/ar/sphinx/ArticleIndex.php b/tests/unit/data/ar/sphinx/ArticleIndex.php
deleted file mode 100644
index f8b9e7e..0000000
--- a/tests/unit/data/ar/sphinx/ArticleIndex.php
+++ /dev/null
@@ -1,46 +0,0 @@
-hasOne(ArticleDb::className(), ['id' => 'id']);
- }
-
- public function getSourceCompositeLink()
- {
- return $this->hasOne(ArticleDb::className(), ['id' => 'id', 'author_id' => 'author_id']);
- }
-
- public function getTags()
- {
- return $this->hasMany(TagDb::className(), ['id' => 'tag']);
- }
-
- /**
- * @inheritdoc
- */
- public function getSnippetSource()
- {
- return $this->source->content;
- }
-
- /**
- * @return ArticleIndexQuery
- */
- public static function find()
- {
- return new ArticleIndexQuery(get_called_class());
- }
-}
diff --git a/tests/unit/data/ar/sphinx/ArticleIndexQuery.php b/tests/unit/data/ar/sphinx/ArticleIndexQuery.php
deleted file mode 100644
index 4f5b7a6..0000000
--- a/tests/unit/data/ar/sphinx/ArticleIndexQuery.php
+++ /dev/null
@@ -1,18 +0,0 @@
-andWhere('author_id=1');
-
- return $this;
- }
-}
diff --git a/tests/unit/data/ar/sphinx/ItemDb.php b/tests/unit/data/ar/sphinx/ItemDb.php
deleted file mode 100644
index 386813a..0000000
--- a/tests/unit/data/ar/sphinx/ItemDb.php
+++ /dev/null
@@ -1,13 +0,0 @@
-generator->sentence($nbWords);
- return mb_substr($sentence, 0, mb_strlen($sentence) - 1);
- }
-
-}
diff --git a/tests/unit/data/extensions/faker/templates/book.php b/tests/unit/data/extensions/faker/templates/book.php
deleted file mode 100644
index 301225a..0000000
--- a/tests/unit/data/extensions/faker/templates/book.php
+++ /dev/null
@@ -1,9 +0,0 @@
- $faker->title,
-];
diff --git a/tests/unit/data/extensions/faker/templates/profile.php b/tests/unit/data/extensions/faker/templates/profile.php
deleted file mode 100644
index 1a7bfbf..0000000
--- a/tests/unit/data/extensions/faker/templates/profile.php
+++ /dev/null
@@ -1,13 +0,0 @@
-getSecurity();
-
-return [
- 'address' => $faker->address,
- 'phone' => $faker->phoneNumber,
- 'first_name' => $faker->firstName,
-];
diff --git a/tests/unit/data/extensions/faker/templates/user.php b/tests/unit/data/extensions/faker/templates/user.php
deleted file mode 100644
index 9795a4e..0000000
--- a/tests/unit/data/extensions/faker/templates/user.php
+++ /dev/null
@@ -1,15 +0,0 @@
-getSecurity();
-
-return [
- 'username' => $faker->userName,
- 'email' => $faker->email,
- 'auth_key' => $security->generateRandomString(),
- 'created_at' => time(),
- 'updated_at' => time(),
-];
diff --git a/tests/unit/data/i18n/messages/ru/test.php b/tests/unit/data/i18n/messages/ru/test.php
deleted file mode 100644
index 8c5ed86..0000000
--- a/tests/unit/data/i18n/messages/ru/test.php
+++ /dev/null
@@ -1,7 +0,0 @@
- 'Собака бегает быстро.',
-];
diff --git a/tests/unit/data/imagine/GothamRnd-Light.otf b/tests/unit/data/imagine/GothamRnd-Light.otf
deleted file mode 100644
index 4181a78..0000000
Binary files a/tests/unit/data/imagine/GothamRnd-Light.otf and /dev/null differ
diff --git a/tests/unit/data/imagine/large.jpg b/tests/unit/data/imagine/large.jpg
deleted file mode 100644
index 81c47e5..0000000
Binary files a/tests/unit/data/imagine/large.jpg and /dev/null differ
diff --git a/tests/unit/data/imagine/xparent.gif b/tests/unit/data/imagine/xparent.gif
deleted file mode 100644
index 2e6fd66..0000000
Binary files a/tests/unit/data/imagine/xparent.gif and /dev/null differ
diff --git a/tests/unit/data/sphinx/source.sql b/tests/unit/data/sphinx/source.sql
deleted file mode 100644
index cfa8642..0000000
--- a/tests/unit/data/sphinx/source.sql
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * This is the MySQL database schema for creation of the test Sphinx index sources.
- */
-
-DROP TABLE IF EXISTS yii2_test_article;
-DROP TABLE IF EXISTS yii2_test_item;
-DROP TABLE IF EXISTS yii2_test_tag;
-DROP TABLE IF EXISTS yii2_test_article_tag;
-
-CREATE TABLE IF NOT EXISTS `yii2_test_article` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `title` varchar(255) NOT NULL,
- `content` text NOT NULL,
- `author_id` int(11) NOT NULL,
- `create_date` datetime NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
-
-CREATE TABLE IF NOT EXISTS `yii2_test_item` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(255) NOT NULL,
- `description` text NOT NULL,
- `category_id` int(11) NOT NULL,
- `price` float NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3;
-
-CREATE TABLE IF NOT EXISTS `yii2_test_tag` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `name` varchar(255) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5;
-
-CREATE TABLE IF NOT EXISTS `yii2_test_article_tag` (
- `article_id` int(11) NOT NULL,
- `tag_id` int(11) NOT NULL,
- PRIMARY KEY (`article_id`,`tag_id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-
-INSERT INTO `yii2_test_article` (`id`, `title`, `content`, `author_id`, `create_date`) VALUES
-(1, 'About cats', 'This article is about cats', 1, '2013-10-23 00:00:00'),
-(2, 'About dogs', 'This article is about dogs', 2, '2013-11-15 00:00:00');
-
-INSERT INTO `yii2_test_item` (`id`, `name`, `description`, `category_id`, `price`) VALUES
-(1, 'pencil', 'Simple pencil', 1, 2.5),
-(2, 'table', 'Wooden table', 2, 100);
-
-INSERT INTO `yii2_test_tag` (`id`, `name`) VALUES
-(1, 'tag1'),
-(2, 'tag2'),
-(3, 'tag3'),
-(4, 'tag4');
-
-INSERT INTO `yii2_test_article_tag` (`article_id`, `tag_id`) VALUES
-(1, 1),
-(1, 2),
-(1, 3),
-(2, 3),
-(2, 4);
\ No newline at end of file
diff --git a/tests/unit/data/sphinx/sphinx.conf b/tests/unit/data/sphinx/sphinx.conf
deleted file mode 100644
index 583bcc5..0000000
--- a/tests/unit/data/sphinx/sphinx.conf
+++ /dev/null
@@ -1,132 +0,0 @@
-# Sphinx configuration for the unit tests
-#
-# Setup test environment:
-# - initialize test database source:
-# mysql -D yiitest -u test < /path/to/yii/tests/unit/data/sphinx/source.sql
-# - setup test Sphinx indexes:
-# indexer --config /path/to/yii/tests/unit/data/sphinx/sphinx.conf --all [--rotate]
-# - run the "searchd" daemon:
-# searchd --config /path/to/yii/tests/unit/data/sphinx/sphinx.conf
-
-
-source yii2_test_article_src
-{
- type = mysql
-
- sql_host = localhost
- sql_user = travis
- sql_pass =
- sql_db = yiitest
- sql_port = 3306 # optional, default is 3306
-
- sql_query = \
- SELECT *, UNIX_TIMESTAMP(create_date) AS add_date \
- FROM yii2_test_article
-
- sql_attr_uint = id
- sql_attr_uint = author_id
- sql_attr_timestamp = add_date
- sql_attr_multi = uint tag from query; SELECT article_id AS id, tag_id AS tag FROM yii2_test_article_tag
-
- sql_query_info = SELECT * FROM yii2_test_article WHERE id=$id
-}
-
-
-source yii2_test_item_src
-{
- type = mysql
-
- sql_host = localhost
- sql_user = travis
- sql_pass =
- sql_db = yiitest
- sql_port = 3306 # optional, default is 3306
-
- sql_query = \
- SELECT *, CURRENT_TIMESTAMP() AS add_date \
- FROM yii2_test_item \
- WHERE id <= 100
-
- sql_attr_uint = id
- sql_attr_uint = category_id
- sql_attr_float = price
- sql_attr_timestamp = add_date
-
- sql_query_info = SELECT * FROM yii2_test_item WHERE id=$id
-}
-
-
-source yii2_test_item_delta_src : yii2_test_item_src
-{
- sql_query = \
- SELECT *, CURRENT_TIMESTAMP() AS add_date \
- FROM yii2_test_item \
- WHERE id > 100
-}
-
-
-index yii2_test_article_index
-{
- source = yii2_test_article_src
- path = SPHINX_BASE_DIR/yii2_test_article
- docinfo = extern
- charset_type = sbcs
-}
-
-
-index yii2_test_item_index
-{
- source = yii2_test_item_src
- path = SPHINX_BASE_DIR/yii2_test_item
- docinfo = extern
- charset_type = sbcs
-}
-
-
-index yii2_test_item_delta_index : yii2_test_item_index
-{
- source = yii2_test_item_delta_src
- path = SPHINX_BASE_DIR/yii2_test_item_delta
-}
-
-
-index yii2_test_rt_index
-{
- type = rt
- path = SPHINX_BASE_DIR/yii2_test_rt
- rt_field = title
- rt_field = content
- rt_attr_uint = type_id
- rt_attr_multi = category
-}
-
-
-index yii2_test_distributed
-{
- type = distributed
- local = yii2_test_article_index
-}
-
-
-indexer
-{
- mem_limit = 32M
-}
-
-
-searchd
-{
- listen = 127.0.0.1:9312
- listen = 9306:mysql41
- log = SPHINX_BASE_DIR/searchd.log
- query_log = SPHINX_BASE_DIR/query.log
- read_timeout = 5
- max_children = 30
- pid_file = SPHINX_BASE_DIR/searchd.pid
- max_matches = 1000
- seamless_rotate = 1
- preopen_indexes = 1
- unlink_old = 1
- workers = threads # for RT to work
- binlog_path = SPHINX_BASE_DIR
-}
diff --git a/tests/unit/data/travis/init-apps.sh b/tests/unit/data/travis/init-apps.sh
deleted file mode 100755
index 0ed39ee..0000000
--- a/tests/unit/data/travis/init-apps.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh -e
-
-if (php --version | grep -i HipHop > /dev/null); then
- echo "skipping application init on HHVM"
-else
-
- mysql -e 'CREATE DATABASE yii2_advanced_tests;';
- cd apps/advanced/tests/codeception/bin
- php yii migrate --interactive=0
- cd ../../../../..
-fi
diff --git a/tests/unit/data/travis/mongodb-setup.sh b/tests/unit/data/travis/mongodb-setup.sh
deleted file mode 100755
index d30835c..0000000
--- a/tests/unit/data/travis/mongodb-setup.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh -e
-#
-# install mongodb
-
-if (php --version | grep -i HipHop > /dev/null); then
- echo "mongodb does not work on HHVM currently, skipping"
-else
- echo "extension = mongo.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
-fi
-
-# show mongodb version
-mongod --version
-
-# show mongo PHP extension version
-php -i |grep mongo -4 |grep -2 Version
-
-# enable text search
-mongo --eval 'db.adminCommand( { setParameter: true, textSearchEnabled : true})'
-
-cat /etc/mongodb.conf
diff --git a/tests/unit/data/travis/setup-apps.sh b/tests/unit/data/travis/setup-apps.sh
deleted file mode 100755
index 6c3abec..0000000
--- a/tests/unit/data/travis/setup-apps.sh
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh -e
-
-if (php --version | grep -i HipHop > /dev/null); then
- echo "skipping application setup on HHVM"
-else
-
- # basic application:
-
- composer install --dev --prefer-dist -d apps/basic
- cd apps/basic && sed -i "s/'cookieValidationKey' => ''/'cookieValidationKey' => 'testkey'/" config/web.php
- cd tests && codecept build && cd ../../..
-
-
- # advanced application:
-
- composer install --dev --prefer-dist -d apps/advanced
- cd apps/advanced && ./init --env=Development
- sed -i s/root/travis/ common/config/main-local.php
- sed -i "s/'cookieValidationKey' => ''/'cookieValidationKey' => 'testkey'/" frontend/config/main.php
- sed -i "s/'cookieValidationKey' => ''/'cookieValidationKey' => 'testkey'/" backend/config/main.php
- cd tests/codeception/backend && codecept build
- cd ../common && codecept build
- cd ../console && codecept build
- cd ../frontend && codecept build
- cd ../../../
-fi
diff --git a/tests/unit/data/travis/sphinx-setup.sh b/tests/unit/data/travis/sphinx-setup.sh
deleted file mode 100755
index 5f6388f..0000000
--- a/tests/unit/data/travis/sphinx-setup.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/sh -e
-SCRIPT=$(readlink -f "$0")
-CWD=$(dirname "$SCRIPT")
-
-# make dir that is used in sphinx config
-mkdir -p sphinx
-sed -i s\~SPHINX_BASE_DIR~$PWD/sphinx~g $CWD/../sphinx/sphinx.conf
-
-# Setup source database
-mysql -D yiitest -u travis < $CWD/../sphinx/source.sql
-
-# setup test Sphinx indexes:
-indexer --config $CWD/../sphinx/sphinx.conf --all
-
-# run searchd:
-searchd --config $CWD/../sphinx/sphinx.conf
diff --git a/tests/unit/data/web/assets/.gitignore b/tests/unit/data/web/assets/.gitignore
deleted file mode 100644
index c96a04f..0000000
--- a/tests/unit/data/web/assets/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-*
-!.gitignore
\ No newline at end of file
diff --git a/tests/unit/extensions/authclient/AuthActionTest.php b/tests/unit/extensions/authclient/AuthActionTest.php
deleted file mode 100644
index 0c0f6ac..0000000
--- a/tests/unit/extensions/authclient/AuthActionTest.php
+++ /dev/null
@@ -1,67 +0,0 @@
- [
- 'user' => [
- 'identityClass' => '\yii\web\IdentityInterface'
- ],
- 'request' => [
- 'hostInfo' => 'http://testdomain.com',
- 'scriptUrl' => '/index.php',
- ],
- ]
- ];
- $this->mockApplication($config, '\yii\web\Application');
- }
-
- public function testSetGet()
- {
- $action = new AuthAction(null, null);
-
- $successUrl = 'http://test.success.url';
- $action->setSuccessUrl($successUrl);
- $this->assertEquals($successUrl, $action->getSuccessUrl(), 'Unable to setup success URL!');
-
- $cancelUrl = 'http://test.cancel.url';
- $action->setCancelUrl($cancelUrl);
- $this->assertEquals($cancelUrl, $action->getCancelUrl(), 'Unable to setup cancel URL!');
- }
-
- /**
- * @depends testSetGet
- */
- public function testGetDefaultSuccessUrl()
- {
- $action = new AuthAction(null, null);
-
- $this->assertNotEmpty($action->getSuccessUrl(), 'Unable to get default success URL!');
- }
-
- /**
- * @depends testSetGet
- */
- public function testGetDefaultCancelUrl()
- {
- $action = new AuthAction(null, null);
-
- $this->assertNotEmpty($action->getSuccessUrl(), 'Unable to get default cancel URL!');
- }
-
- public function testRedirect()
- {
- $action = new AuthAction(null, null);
-
- $url = 'http://test.url';
- $response = $action->redirect($url, true);
-
- $this->assertContains($url, $response->content);
- }
-}
diff --git a/tests/unit/extensions/authclient/BaseClientTest.php b/tests/unit/extensions/authclient/BaseClientTest.php
deleted file mode 100644
index af1beaa..0000000
--- a/tests/unit/extensions/authclient/BaseClientTest.php
+++ /dev/null
@@ -1,156 +0,0 @@
-setId($id);
- $this->assertEquals($id, $client->getId(), 'Unable to setup id!');
-
- $name = 'test_name';
- $client->setName($name);
- $this->assertEquals($name, $client->getName(), 'Unable to setup name!');
-
- $title = 'test_title';
- $client->setTitle($title);
- $this->assertEquals($title, $client->getTitle(), 'Unable to setup title!');
-
- $userAttributes = [
- 'attribute1' => 'value1',
- 'attribute2' => 'value2',
- ];
- $client->setUserAttributes($userAttributes);
- $this->assertEquals($userAttributes, $client->getUserAttributes(), 'Unable to setup user attributes!');
-
- $normalizeUserAttributeMap = [
- 'name' => 'some/name',
- 'email' => 'some/email',
- ];
- $client->setNormalizeUserAttributeMap($normalizeUserAttributeMap);
- $this->assertEquals($normalizeUserAttributeMap, $client->getNormalizeUserAttributeMap(), 'Unable to setup normalize user attribute map!');
-
- $viewOptions = [
- 'option1' => 'value1',
- 'option2' => 'value2',
- ];
- $client->setViewOptions($viewOptions);
- $this->assertEquals($viewOptions, $client->getViewOptions(), 'Unable to setup view options!');
- }
-
- public function testGetDefaults()
- {
- $client = new Client();
-
- $this->assertNotEmpty($client->getName(), 'Unable to get default name!');
- $this->assertNotEmpty($client->getTitle(), 'Unable to get default title!');
- $this->assertNotNull($client->getViewOptions(), 'Unable to get default view options!');
- $this->assertNotNull($client->getNormalizeUserAttributeMap(), 'Unable to get default normalize user attribute map!');
- }
-
- /**
- * Data provider for [[testNormalizeUserAttributes()]]
- * @return array test data
- */
- public function dataProviderNormalizeUserAttributes()
- {
- return [
- [
- [
- 'name' => 'raw/name',
- 'email' => 'raw/email',
- ],
- [
- 'raw/name' => 'name value',
- 'raw/email' => 'email value',
- ],
- [
- 'name' => 'name value',
- 'email' => 'email value',
- ],
- ],
- [
- [
- 'name' => function ($attributes) {
- return $attributes['firstName'] . ' ' . $attributes['lastName'];
- },
- ],
- [
- 'firstName' => 'John',
- 'lastName' => 'Smith',
- ],
- [
- 'name' => 'John Smith',
- ],
- ],
- [
- [
- 'email' => ['emails', 'prime'],
- ],
- [
- 'emails' => [
- 'prime' => 'some@email.com'
- ],
- ],
- [
- 'email' => 'some@email.com',
- ],
- ],
- [
- [
- 'email' => ['emails', 0],
- 'secondaryEmail' => ['emails', 1],
- ],
- [
- 'emails' => [
- 'some@email.com',
- ],
- ],
- [
- 'email' => 'some@email.com',
- ],
- ],
- [
- [
- 'name' => 'file_get_contents',
- ],
- [
- 'file_get_contents' => 'value',
- ],
- [
- 'name' => 'value',
- ],
- ],
- ];
- }
-
- /**
- * @dataProvider dataProviderNormalizeUserAttributes
- *
- * @depends testSetGet
- *
- * @param array $normalizeUserAttributeMap
- * @param array $rawUserAttributes
- * @param array $expectedNormalizedUserAttributes
- */
- public function testNormalizeUserAttributes($normalizeUserAttributeMap, $rawUserAttributes, $expectedNormalizedUserAttributes)
- {
- $client = new Client();
- $client->setNormalizeUserAttributeMap($normalizeUserAttributeMap);
-
- $client->setUserAttributes($rawUserAttributes);
- $normalizedUserAttributes = $client->getUserAttributes();
-
- $this->assertEquals(array_merge($rawUserAttributes, $expectedNormalizedUserAttributes), $normalizedUserAttributes);
- }
-}
-
-class Client extends BaseClient
-{
-}
diff --git a/tests/unit/extensions/authclient/BaseOAuthTest.php b/tests/unit/extensions/authclient/BaseOAuthTest.php
deleted file mode 100644
index ce29321..0000000
--- a/tests/unit/extensions/authclient/BaseOAuthTest.php
+++ /dev/null
@@ -1,252 +0,0 @@
-getMock(BaseOAuth::className(), ['setState', 'getState', 'composeRequestCurlOptions', 'refreshAccessToken', 'apiInternal']);
- $oauthClient->expects($this->any())->method('setState')->will($this->returnValue($oauthClient));
- $oauthClient->expects($this->any())->method('getState')->will($this->returnValue(null));
-
- return $oauthClient;
- }
-
- /**
- * Invokes the OAuth client method even if it is protected.
- * @param BaseOAuth $oauthClient OAuth client instance.
- * @param string $methodName name of the method to be invoked.
- * @param array $arguments method arguments.
- * @return mixed method invoke result.
- */
- protected function invokeOAuthClientMethod($oauthClient, $methodName, array $arguments = [])
- {
- $classReflection = new \ReflectionClass(get_class($oauthClient));
- $methodReflection = $classReflection->getMethod($methodName);
- $methodReflection->setAccessible(true);
- $result = $methodReflection->invokeArgs($oauthClient, $arguments);
- $methodReflection->setAccessible(false);
-
- return $result;
- }
-
- // Tests :
-
- public function testSetGet()
- {
- $oauthClient = $this->createOAuthClient();
-
- $returnUrl = 'http://test.return.url';
- $oauthClient->setReturnUrl($returnUrl);
- $this->assertEquals($returnUrl, $oauthClient->getReturnUrl(), 'Unable to setup return URL!');
-
- $curlOptions = [
- 'option1' => 'value1',
- 'option2' => 'value2',
- ];
- $oauthClient->setCurlOptions($curlOptions);
- $this->assertEquals($curlOptions, $oauthClient->getCurlOptions(), 'Unable to setup cURL options!');
- }
-
- public function testSetupComponents()
- {
- $oauthClient = $this->createOAuthClient();
-
- $oauthToken = new OAuthToken();
- $oauthClient->setAccessToken($oauthToken);
- $this->assertEquals($oauthToken, $oauthClient->getAccessToken(), 'Unable to setup token!');
-
- $oauthSignatureMethod = new PlainText();
- $oauthClient->setSignatureMethod($oauthSignatureMethod);
- $this->assertEquals($oauthSignatureMethod, $oauthClient->getSignatureMethod(), 'Unable to setup signature method!');
- }
-
- /**
- * @depends testSetupComponents
- */
- public function testSetupComponentsByConfig()
- {
- $oauthClient = $this->createOAuthClient();
-
- $oauthToken = [
- 'token' => 'test_token',
- 'tokenSecret' => 'test_token_secret',
- ];
- $oauthClient->setAccessToken($oauthToken);
- $this->assertEquals($oauthToken['token'], $oauthClient->getAccessToken()->getToken(), 'Unable to setup token as config!');
-
- $oauthSignatureMethod = [
- 'class' => 'yii\authclient\signature\PlainText'
- ];
- $oauthClient->setSignatureMethod($oauthSignatureMethod);
- $returnedSignatureMethod = $oauthClient->getSignatureMethod();
- $this->assertEquals($oauthSignatureMethod['class'], get_class($returnedSignatureMethod), 'Unable to setup signature method as config!');
- }
-
- /**
- * Data provider for [[testComposeUrl()]].
- * @return array test data.
- */
- public function composeUrlDataProvider()
- {
- return [
- [
- 'http://test.url',
- [
- 'param1' => 'value1',
- 'param2' => 'value2',
- ],
- 'http://test.url?param1=value1¶m2=value2',
- ],
- [
- 'http://test.url?with=some',
- [
- 'param1' => 'value1',
- 'param2' => 'value2',
- ],
- 'http://test.url?with=some¶m1=value1¶m2=value2',
- ],
- ];
- }
-
- /**
- * @dataProvider composeUrlDataProvider
- *
- * @param string $url request URL.
- * @param array $params request params
- * @param string $expectedUrl expected composed URL.
- */
- public function testComposeUrl($url, array $params, $expectedUrl)
- {
- $oauthClient = $this->createOAuthClient();
- $composedUrl = $this->invokeOAuthClientMethod($oauthClient, 'composeUrl', [$url, $params]);
- $this->assertEquals($expectedUrl, $composedUrl);
- }
-
- /**
- * Data provider for {@link testDetermineContentTypeByHeaders}.
- * @return array test data.
- */
- public function determineContentTypeByHeadersDataProvider()
- {
- return [
- [
- ['content_type' => 'application/json'],
- 'json'
- ],
- [
- ['content_type' => 'application/x-www-form-urlencoded'],
- 'urlencoded'
- ],
- [
- ['content_type' => 'application/xml'],
- 'xml'
- ],
- [
- ['some_header' => 'some_header_value'],
- 'auto'
- ],
- [
- ['content_type' => 'unknown'],
- 'auto'
- ],
- ];
- }
-
- /**
- * @dataProvider determineContentTypeByHeadersDataProvider
- *
- * @param array $headers request headers.
- * @param string $expectedResponseType expected response type.
- */
- public function testDetermineContentTypeByHeaders(array $headers, $expectedResponseType)
- {
- $oauthClient = $this->createOAuthClient();
- $responseType = $this->invokeOAuthClientMethod($oauthClient, 'determineContentTypeByHeaders', [$headers]);
- $this->assertEquals($expectedResponseType, $responseType);
- }
-
- /**
- * Data provider for [[testDetermineContentTypeByRaw]].
- * @return array test data.
- */
- public function determineContentTypeByRawDataProvider()
- {
- return [
- ['{name: value}', 'json'],
- ['name=value', 'urlencoded'],
- ['name1=value1&name2=value2', 'urlencoded'],
- ['
Value', 'xml'],
- ['
Value', 'xml'],
- ];
- }
-
- /**
- * @dataProvider determineContentTypeByRawDataProvider
- *
- * @param string $rawResponse raw response content.
- * @param string $expectedResponseType expected response type.
- */
- public function testDetermineContentTypeByRaw($rawResponse, $expectedResponseType)
- {
- $oauthClient = $this->createOAuthClient();
- $responseType = $this->invokeOAuthClientMethod($oauthClient, 'determineContentTypeByRaw', [$rawResponse]);
- $this->assertEquals($expectedResponseType, $responseType);
- }
-
- /**
- * Data provider for [[testApiUrl]].
- * @return array test data.
- */
- public function apiUrlDataProvider()
- {
- return [
- [
- 'http://api.base.url',
- 'sub/url',
- 'http://api.base.url/sub/url',
- ],
- [
- 'http://api.base.url',
- 'http://api.base.url/sub/url',
- 'http://api.base.url/sub/url',
- ],
- [
- 'http://api.base.url',
- 'https://api.base.url/sub/url',
- 'https://api.base.url/sub/url',
- ],
- ];
- }
-
- /**
- * @dataProvider apiUrlDataProvider
- *
- * @param $apiBaseUrl
- * @param $apiSubUrl
- * @param $expectedApiFullUrl
- */
- public function testApiUrl($apiBaseUrl, $apiSubUrl, $expectedApiFullUrl)
- {
- $oauthClient = $this->createOAuthClient();
- $oauthClient->expects($this->any())->method('apiInternal')->will($this->returnArgument(1));
-
- $accessToken = new OAuthToken();
- $accessToken->setToken('test_access_token');
- $accessToken->setExpireDuration(1000);
- $oauthClient->setAccessToken($accessToken);
-
- $oauthClient->apiBaseUrl = $apiBaseUrl;
-
- $this->assertEquals($expectedApiFullUrl, $oauthClient->api($apiSubUrl));
- }
-}
diff --git a/tests/unit/extensions/authclient/CollectionTest.php b/tests/unit/extensions/authclient/CollectionTest.php
deleted file mode 100644
index 0aa70c1..0000000
--- a/tests/unit/extensions/authclient/CollectionTest.php
+++ /dev/null
@@ -1,84 +0,0 @@
- new TestClient(),
- 'testClient2' => new TestClient(),
- ];
- $collection->setClients($clients);
- $this->assertEquals($clients, $collection->getClients(), 'Unable to setup clients!');
- }
-
- /**
- * @depends testSetGet
- */
- public function testGetProviderById()
- {
- $collection = new Collection();
-
- $clientId = 'testClientId';
- $client = new TestClient();
- $clients = [
- $clientId => $client
- ];
- $collection->setClients($clients);
-
- $this->assertEquals($client, $collection->getClient($clientId), 'Unable to get client by id!');
- }
-
- /**
- * @depends testGetProviderById
- */
- public function testCreateProvider()
- {
- $collection = new Collection();
-
- $clientId = 'testClientId';
- $clientClassName = TestClient::className();
- $clients = [
- $clientId => [
- 'class' => $clientClassName
- ]
- ];
- $collection->setClients($clients);
-
- $provider = $collection->getClient($clientId);
- $this->assertTrue(is_object($provider), 'Unable to create client by config!');
- $this->assertTrue(is_a($provider, $clientClassName), 'Client has wrong class name!');
- }
-
- /**
- * @depends testSetGet
- */
- public function testHasProvider()
- {
- $collection = new Collection();
-
- $clientName = 'testClientName';
- $clients = [
- $clientName => [
- 'class' => 'TestClient1'
- ],
- ];
- $collection->setClients($clients);
-
- $this->assertTrue($collection->hasClient($clientName), 'Existing client check fails!');
- $this->assertFalse($collection->hasClient('unExistingClientName'), 'Not existing client check fails!');
- }
-}
-
-class TestClient extends BaseClient
-{
-}
diff --git a/tests/unit/extensions/authclient/OAuth1Test.php b/tests/unit/extensions/authclient/OAuth1Test.php
deleted file mode 100644
index 0a862ad..0000000
--- a/tests/unit/extensions/authclient/OAuth1Test.php
+++ /dev/null
@@ -1,119 +0,0 @@
- [
- 'request' => [
- 'hostInfo' => 'http://testdomain.com',
- 'scriptUrl' => '/index.php',
- ],
- ]
- ];
- $this->mockApplication($config, '\yii\web\Application');
- }
-
- /**
- * Invokes the OAuth client method even if it is protected.
- * @param OAuth1 $oauthClient OAuth client instance.
- * @param string $methodName name of the method to be invoked.
- * @param array $arguments method arguments.
- * @return mixed method invoke result.
- */
- protected function invokeOAuthClientMethod($oauthClient, $methodName, array $arguments = [])
- {
- $classReflection = new \ReflectionClass(get_class($oauthClient));
- $methodReflection = $classReflection->getMethod($methodName);
- $methodReflection->setAccessible(true);
- $result = $methodReflection->invokeArgs($oauthClient, $arguments);
- $methodReflection->setAccessible(false);
-
- return $result;
- }
-
- // Tests :
-
- public function testSignRequest()
- {
- $oauthClient = new OAuth1();
-
- $oauthSignatureMethod = new PlainText();
- $oauthClient->setSignatureMethod($oauthSignatureMethod);
-
- $signedParams = $this->invokeOAuthClientMethod($oauthClient, 'signRequest', ['GET', 'http://test.url', []]);
- $this->assertNotEmpty($signedParams['oauth_signature'], 'Unable to sign request!');
- }
-
- /**
- * Data provider for [[testComposeAuthorizationHeader()]].
- * @return array test data.
- */
- public function composeAuthorizationHeaderDataProvider()
- {
- return [
- [
- '',
- [
- 'oauth_test_name_1' => 'oauth_test_value_1',
- 'oauth_test_name_2' => 'oauth_test_value_2',
- ],
- 'Authorization: OAuth oauth_test_name_1="oauth_test_value_1", oauth_test_name_2="oauth_test_value_2"'
- ],
- [
- 'test_realm',
- [
- 'oauth_test_name_1' => 'oauth_test_value_1',
- 'oauth_test_name_2' => 'oauth_test_value_2',
- ],
- 'Authorization: OAuth realm="test_realm", oauth_test_name_1="oauth_test_value_1", oauth_test_name_2="oauth_test_value_2"'
- ],
- [
- '',
- [
- 'oauth_test_name_1' => 'oauth_test_value_1',
- 'test_name_2' => 'test_value_2',
- ],
- 'Authorization: OAuth oauth_test_name_1="oauth_test_value_1"'
- ],
- ];
- }
-
- /**
- * @dataProvider composeAuthorizationHeaderDataProvider
- *
- * @param string $realm authorization realm.
- * @param array $params request params.
- * @param string $expectedAuthorizationHeader expected authorization header.
- */
- public function testComposeAuthorizationHeader($realm, array $params, $expectedAuthorizationHeader)
- {
- $oauthClient = new OAuth1();
- $authorizationHeader = $this->invokeOAuthClientMethod($oauthClient, 'composeAuthorizationHeader', [$params, $realm]);
- $this->assertEquals($expectedAuthorizationHeader, $authorizationHeader);
- }
-
- public function testBuildAuthUrl()
- {
- $oauthClient = new OAuth1();
- $authUrl = 'http://test.auth.url';
- $oauthClient->authUrl = $authUrl;
-
- $requestTokenToken = 'test_request_token';
- $requestToken = new OAuthToken();
- $requestToken->setToken($requestTokenToken);
-
- $builtAuthUrl = $oauthClient->buildAuthUrl($requestToken);
-
- $this->assertContains($authUrl, $builtAuthUrl, 'No auth URL present!');
- $this->assertContains($requestTokenToken, $builtAuthUrl, 'No token present!');
- }
-}
diff --git a/tests/unit/extensions/authclient/OAuth2Test.php b/tests/unit/extensions/authclient/OAuth2Test.php
deleted file mode 100644
index 47e7b8b..0000000
--- a/tests/unit/extensions/authclient/OAuth2Test.php
+++ /dev/null
@@ -1,41 +0,0 @@
- [
- 'request' => [
- 'hostInfo' => 'http://testdomain.com',
- 'scriptUrl' => '/index.php',
- ],
- ]
- ];
- $this->mockApplication($config, '\yii\web\Application');
- }
-
- // Tests :
-
- public function testBuildAuthUrl()
- {
- $oauthClient = new OAuth2();
- $authUrl = 'http://test.auth.url';
- $oauthClient->authUrl = $authUrl;
- $clientId = 'test_client_id';
- $oauthClient->clientId = $clientId;
- $returnUrl = 'http://test.return.url';
- $oauthClient->setReturnUrl($returnUrl);
-
- $builtAuthUrl = $oauthClient->buildAuthUrl();
-
- $this->assertContains($authUrl, $builtAuthUrl, 'No auth URL present!');
- $this->assertContains($clientId, $builtAuthUrl, 'No client id present!');
- $this->assertContains(rawurlencode($returnUrl), $builtAuthUrl, 'No return URL present!');
- }
-}
diff --git a/tests/unit/extensions/authclient/OpenIdTest.php b/tests/unit/extensions/authclient/OpenIdTest.php
deleted file mode 100644
index 6e2bde0..0000000
--- a/tests/unit/extensions/authclient/OpenIdTest.php
+++ /dev/null
@@ -1,129 +0,0 @@
- [
- 'request' => [
- 'hostInfo' => 'http://testdomain.com',
- 'scriptUrl' => '/index.php',
- ],
- ]
- ];
- $this->mockApplication($config, '\yii\web\Application');
- }
-
- /**
- * Invokes the object method even if it is protected.
- * @param object $object object instance
- * @param string $methodName name of the method to be invoked.
- * @param array $args method arguments.
- * @return mixed method invoke result.
- */
- protected function invokeMethod($object, $methodName, array $args = [])
- {
- $classReflection = new \ReflectionClass(get_class($object));
- $methodReflection = $classReflection->getMethod($methodName);
- $methodReflection->setAccessible(true);
- $result = $methodReflection->invokeArgs($object, $args);
- $methodReflection->setAccessible(false);
- return $result;
- }
-
- // Tests :
-
- public function testSetGet()
- {
- $client = new OpenId();
-
- $trustRoot = 'http://trust.root';
- $client->setTrustRoot($trustRoot);
- $this->assertEquals($trustRoot, $client->getTrustRoot(), 'Unable to setup trust root!');
-
- $returnUrl = 'http://return.url';
- $client->setReturnUrl($returnUrl);
- $this->assertEquals($returnUrl, $client->getReturnUrl(), 'Unable to setup return URL!');
- }
-
- /**
- * @depends testSetGet
- */
- public function testGetDefaults()
- {
- $client = new OpenId();
-
- $this->assertNotEmpty($client->getTrustRoot(), 'Unable to get default trust root!');
- $this->assertNotEmpty($client->getReturnUrl(), 'Unable to get default return URL!');
- }
-
- public function testDiscover()
- {
- $url = 'https://www.google.com/accounts/o8/id';
- $client = new OpenId();
- $info = $client->discover($url);
- $this->assertNotEmpty($info);
- $this->assertNotEmpty($info['url']);
- $this->assertNotEmpty($info['identity']);
- $this->assertEquals(2, $info['version']);
- $this->assertArrayHasKey('identifier_select', $info);
- $this->assertArrayHasKey('ax', $info);
- $this->assertArrayHasKey('sreg', $info);
- }
-
- /**
- * Data provider for [[testCompareUrl()]]
- * @return array test data
- */
- public function dataProviderCompareUrl()
- {
- return [
- [
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- true
- ],
- [
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- 'http://domain.com/index.php?r=site/auth&authclient=myclient',
- true
- ],
- [
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- 'http://domain.com/index.php?r=site/auth&authclient=myclient2',
- false
- ],
- [
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient&custom=value',
- 'http://domain.com/index.php?r=site%2Fauth&custom=value&authclient=myclient',
- true
- ],
- [
- 'https://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- 'http://domain.com/index.php?r=site%2Fauth&authclient=myclient',
- false
- ],
- ];
- }
-
- /**
- * @see https://github.com/yiisoft/yii2/issues/3633
- *
- * @dataProvider dataProviderCompareUrl
- *
- * @param string $url1
- * @param string $url2
- * @param boolean $expectedResult
- */
- public function testCompareUrl($url1, $url2, $expectedResult)
- {
- $client = new OpenId();
- $comparisonResult = $this->invokeMethod($client, 'compareUrl', [$url1, $url2]);
- $this->assertEquals($expectedResult, $comparisonResult);
- }
-}
diff --git a/tests/unit/extensions/authclient/TestCase.php b/tests/unit/extensions/authclient/TestCase.php
deleted file mode 100644
index f08dfcc..0000000
--- a/tests/unit/extensions/authclient/TestCase.php
+++ /dev/null
@@ -1,30 +0,0 @@
- 'test_token_param_key',
- 'tokenSecretParamKey' => 'test_token_secret_param_key',
- ];
- $oauthToken = new OAuthToken($config);
- $this->assertTrue(is_object($oauthToken), 'Unable to create access token!');
- foreach ($config as $name => $value) {
- $this->assertEquals($value, $oauthToken->$name, 'Unable to setup attributes by constructor!');
- }
- $this->assertTrue($oauthToken->createTimestamp > 0, 'Unable to fill create timestamp!');
- }
-
- public function testSetupParams()
- {
- $oauthToken = new OAuthToken();
-
- $params = [
- 'name_1' => 'value_1',
- 'name_2' => 'value_2',
- ];
- $oauthToken->setParams($params);
- $this->assertEquals($params, $oauthToken->getParams(), 'Unable to setup params!');
-
- $newParamName = 'new_param_name';
- $newParamValue = 'new_param_value';
- $oauthToken->setParam($newParamName, $newParamValue);
- $this->assertEquals($newParamValue, $oauthToken->getParam($newParamName), 'Unable to setup param by name!');
- }
-
- /**
- * @depends testSetupParams
- */
- public function testSetupParamsShortcuts()
- {
- $oauthToken = new OAuthToken();
-
- $token = 'test_token_value';
- $oauthToken->setToken($token);
- $this->assertEquals($token, $oauthToken->getToken(), 'Unable to setup token!');
-
- $tokenSecret = 'test_token_secret';
- $oauthToken->setTokenSecret($tokenSecret);
- $this->assertEquals($tokenSecret, $oauthToken->getTokenSecret(), 'Unable to setup token secret!');
-
- $tokenExpireDuration = rand(1000, 2000);
- $oauthToken->setExpireDuration($tokenExpireDuration);
- $this->assertEquals($tokenExpireDuration, $oauthToken->getExpireDuration(), 'Unable to setup expire duration!');
- }
-
- /**
- * Data provider for {@link testAutoFetchExpireDuration}.
- * @return array test data.
- */
- public function autoFetchExpireDurationDataProvider()
- {
- return [
- [
- ['expire_in' => 123345],
- 123345
- ],
- [
- ['expire' => 233456],
- 233456
- ],
- [
- ['expiry_in' => 34567],
- 34567
- ],
- [
- ['expiry' => 45678],
- 45678
- ],
- ];
- }
-
- /**
- * @depends testSetupParamsShortcuts
- * @dataProvider autoFetchExpireDurationDataProvider
- *
- * @param array $params
- * @param $expectedExpireDuration
- */
- public function testAutoFetchExpireDuration(array $params, $expectedExpireDuration)
- {
- $oauthToken = new OAuthToken();
- $oauthToken->setParams($params);
- $this->assertEquals($expectedExpireDuration, $oauthToken->getExpireDuration());
- }
-
- /**
- * @depends testSetupParamsShortcuts
- */
- public function testGetIsExpired()
- {
- $oauthToken = new OAuthToken();
- $expireDuration = 3600;
- $oauthToken->setExpireDuration($expireDuration);
-
- $this->assertFalse($oauthToken->getIsExpired(), 'Not expired token check fails!');
-
- $oauthToken->createTimestamp = $oauthToken->createTimestamp - ($expireDuration +1);
- $this->assertTrue($oauthToken->getIsExpired(), 'Expired token check fails!');
- }
-
- /**
- * @depends testGetIsExpired
- */
- public function testGetIsValid()
- {
- $oauthToken = new OAuthToken();
- $expireDuration = 3600;
- $oauthToken->setExpireDuration($expireDuration);
-
- $this->assertFalse($oauthToken->getIsValid(), 'Empty token is valid!');
-
- $oauthToken->setToken('test_token');
- $this->assertTrue($oauthToken->getIsValid(), 'Filled up token is invalid!');
-
- $oauthToken->createTimestamp = $oauthToken->createTimestamp - ($expireDuration +1);
- $this->assertFalse($oauthToken->getIsValid(), 'Expired token is valid!');
- }
-}
diff --git a/tests/unit/extensions/authclient/signature/BaseMethodTest.php b/tests/unit/extensions/authclient/signature/BaseMethodTest.php
deleted file mode 100644
index aa838ff..0000000
--- a/tests/unit/extensions/authclient/signature/BaseMethodTest.php
+++ /dev/null
@@ -1,51 +0,0 @@
-getMock('\yii\authclient\signature\BaseMethod', ['getName', 'generateSignature']);
- $signatureMethod->expects($this->any())->method('getName')->will($this->returnValue('testMethodName'));
- $signatureMethod->expects($this->any())->method('generateSignature')->will($this->returnValue('testSignature'));
-
- return $signatureMethod;
- }
-
- // Tests :
-
- public function testGenerateSignature()
- {
- $signatureMethod = $this->createTestSignatureMethod();
-
- $baseString = 'test_base_string';
- $key = 'test_key';
-
- $signature = $signatureMethod->generateSignature($baseString, $key);
-
- $this->assertNotEmpty($signature, 'Unable to generate signature!');
- }
-
- /**
- * @depends testGenerateSignature
- */
- public function testVerify()
- {
- $signatureMethod = $this->createTestSignatureMethod();
-
- $baseString = 'test_base_string';
- $key = 'test_key';
- $signature = 'unsigned';
- $this->assertFalse($signatureMethod->verify($signature, $baseString, $key), 'Unsigned signature is valid!');
-
- $generatedSignature = $signatureMethod->generateSignature($baseString, $key);
- $this->assertTrue($signatureMethod->verify($generatedSignature, $baseString, $key), 'Generated signature is invalid!');
- }
-}
diff --git a/tests/unit/extensions/authclient/signature/HmacSha1Test.php b/tests/unit/extensions/authclient/signature/HmacSha1Test.php
deleted file mode 100644
index e766793..0000000
--- a/tests/unit/extensions/authclient/signature/HmacSha1Test.php
+++ /dev/null
@@ -1,20 +0,0 @@
-generateSignature($baseString, $key);
- $this->assertNotEmpty($signature, 'Unable to generate signature!');
- }
-}
diff --git a/tests/unit/extensions/authclient/signature/PlainTextTest.php b/tests/unit/extensions/authclient/signature/PlainTextTest.php
deleted file mode 100644
index 584cff6..0000000
--- a/tests/unit/extensions/authclient/signature/PlainTextTest.php
+++ /dev/null
@@ -1,20 +0,0 @@
-generateSignature($baseString, $key);
- $this->assertNotEmpty($signature, 'Unable to generate signature!');
- }
-}
diff --git a/tests/unit/extensions/authclient/signature/RsaSha1Test.php b/tests/unit/extensions/authclient/signature/RsaSha1Test.php
deleted file mode 100644
index 447c3cd..0000000
--- a/tests/unit/extensions/authclient/signature/RsaSha1Test.php
+++ /dev/null
@@ -1,110 +0,0 @@
-setPrivateCertificate($this->getTestPrivateCertificate());
- $signatureMethod->setPublicCertificate($this->getTestPublicCertificate());
-
- $baseString = 'test_base_string';
- $key = 'test_key';
-
- $signature = $signatureMethod->generateSignature($baseString, $key);
- $this->assertNotEmpty($signature, 'Unable to generate signature!');
- }
-
- /**
- * @depends testGenerateSignature
- */
- public function testVerify()
- {
- $signatureMethod = new RsaSha1();
- $signatureMethod->setPrivateCertificate($this->getTestPrivateCertificate());
- $signatureMethod->setPublicCertificate($this->getTestPublicCertificate());
-
- $baseString = 'test_base_string';
- $key = 'test_key';
- $signature = 'unsigned';
- $this->assertFalse($signatureMethod->verify($signature, $baseString, $key), 'Unsigned signature is valid!');
-
- $generatedSignature = $signatureMethod->generateSignature($baseString, $key);
- $this->assertTrue($signatureMethod->verify($generatedSignature, $baseString, $key), 'Generated signature is invalid!');
- }
-
- public function testInitPrivateCertificate()
- {
- $signatureMethod = new RsaSha1();
-
- $certificateFileName = __FILE__;
- $signatureMethod->privateCertificateFile = $certificateFileName;
- $this->assertEquals(file_get_contents($certificateFileName), $signatureMethod->getPrivateCertificate(), 'Unable to fetch private certificate from file!');
- }
-
- public function testInitPublicCertificate()
- {
- $signatureMethod = new RsaSha1();
-
- $certificateFileName = __FILE__;
- $signatureMethod->publicCertificateFile = $certificateFileName;
- $this->assertEquals(file_get_contents($certificateFileName), $signatureMethod->getPublicCertificate(), 'Unable to fetch public certificate from file!');
- }
-}
diff --git a/tests/unit/extensions/bootstrap/BootstrapTestCase.php b/tests/unit/extensions/bootstrap/BootstrapTestCase.php
deleted file mode 100644
index efb547f..0000000
--- a/tests/unit/extensions/bootstrap/BootstrapTestCase.php
+++ /dev/null
@@ -1,15 +0,0 @@
-mockWebApplication();
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/bootstrap/ButtonDropdownTest.php b/tests/unit/extensions/bootstrap/ButtonDropdownTest.php
deleted file mode 100644
index d73c98a..0000000
--- a/tests/unit/extensions/bootstrap/ButtonDropdownTest.php
+++ /dev/null
@@ -1,28 +0,0 @@
- [
- 'class' => $containerClass,
- ],
- 'label' => 'Action',
- 'dropdown' => [
- 'items' => [
- ['label' => 'DropdownA', 'url' => '/'],
- ['label' => 'DropdownB', 'url' => '#'],
- ],
- ],
- ]);
-
- $this->assertContains("$containerClass btn-group", $out);
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/bootstrap/TabsTest.php b/tests/unit/extensions/bootstrap/TabsTest.php
deleted file mode 100644
index 921b9a9..0000000
--- a/tests/unit/extensions/bootstrap/TabsTest.php
+++ /dev/null
@@ -1,72 +0,0 @@
- [
- [
- 'label' => 'Page1', 'content' => 'Page1',
- ],
- [
- 'label' => 'Dropdown1',
- 'items' => [
- ['label' => 'Page2', 'content' => 'Page2'],
- ['label' => 'Page3', 'content' => 'Page3'],
- ]
- ],
- [
- 'label' => 'Dropdown2',
- 'items' => [
- ['label' => 'Page4', 'content' => 'Page4'],
- ['label' => 'Page5', 'content' => 'Page5'],
- ]
- ]
- ]
- ]);
-
- $page1 = 'w0-tab0';
- $page2 = 'w0-dd1-tab0';
- $page3 = 'w0-dd1-tab1';
- $page4 = 'w0-dd2-tab0';
- $page5 = 'w0-dd2-tab1';
-
- $shouldContain = [
- 'w0', // nav widget container
- "#$page1", // Page1
-
- 'w1', // Dropdown1
- "$page2", // Page2
- "$page3", // Page3
-
-
- 'w2', // Dropdown2
- "#$page4", // Page4
- "#$page5", // Page5
-
- // containers
- "id=\"$page1\"",
- "id=\"$page2\"",
- "id=\"$page3\"",
- "id=\"$page4\"",
- "id=\"$page5\"",
- ];
-
- foreach ($shouldContain as $string) {
- $this->assertContains($string, $out);
- }
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/elasticsearch/ActiveRecordTest.php b/tests/unit/extensions/elasticsearch/ActiveRecordTest.php
deleted file mode 100644
index 8eebd30..0000000
--- a/tests/unit/extensions/elasticsearch/ActiveRecordTest.php
+++ /dev/null
@@ -1,912 +0,0 @@
-getConnection()->createCommand()->flushIndex('yiitest');
- }
-
- public function setUp()
- {
- parent::setUp();
-
- /* @var $db Connection */
- $db = ActiveRecord::$db = $this->getConnection();
-
- // delete index
- if ($db->createCommand()->indexExists('yiitest')) {
- $db->createCommand()->deleteIndex('yiitest');
- }
- $db->createCommand()->createIndex('yiitest');
-
- $command = $db->createCommand();
- Customer::setUpMapping($command);
- Item::setUpMapping($command);
- Order::setUpMapping($command);
- OrderItem::setUpMapping($command);
- OrderWithNullFK::setUpMapping($command);
- OrderItemWithNullFK::setUpMapping($command);
-
- $db->createCommand()->flushIndex('yiitest');
-
- $customer = new Customer();
- $customer->id = 1;
- $customer->setAttributes(['email' => 'user1@example.com', 'name' => 'user1', 'address' => 'address1', 'status' => 1], false);
- $customer->save(false);
- $customer = new Customer();
- $customer->id = 2;
- $customer->setAttributes(['email' => 'user2@example.com', 'name' => 'user2', 'address' => 'address2', 'status' => 1], false);
- $customer->save(false);
- $customer = new Customer();
- $customer->id = 3;
- $customer->setAttributes(['email' => 'user3@example.com', 'name' => 'user3', 'address' => 'address3', 'status' => 2], false);
- $customer->save(false);
-
-// INSERT INTO category (name) VALUES ('Books');
-// INSERT INTO category (name) VALUES ('Movies');
-
- $item = new Item();
- $item->id = 1;
- $item->setAttributes(['name' => 'Agile Web Application Development with Yii1.1 and PHP5', 'category_id' => 1], false);
- $item->save(false);
- $item = new Item();
- $item->id = 2;
- $item->setAttributes(['name' => 'Yii 1.1 Application Development Cookbook', 'category_id' => 1], false);
- $item->save(false);
- $item = new Item();
- $item->id = 3;
- $item->setAttributes(['name' => 'Ice Age', 'category_id' => 2], false);
- $item->save(false);
- $item = new Item();
- $item->id = 4;
- $item->setAttributes(['name' => 'Toy Story', 'category_id' => 2], false);
- $item->save(false);
- $item = new Item();
- $item->id = 5;
- $item->setAttributes(['name' => 'Cars', 'category_id' => 2], false);
- $item->save(false);
-
- $order = new Order();
- $order->id = 1;
- $order->setAttributes(['customer_id' => 1, 'created_at' => 1325282384, 'total' => 110.0, 'itemsArray' => [1, 2]], false);
- $order->save(false);
- $order = new Order();
- $order->id = 2;
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325334482, 'total' => 33.0, 'itemsArray' => [4, 5, 3]], false);
- $order->save(false);
- $order = new Order();
- $order->id = 3;
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325502201, 'total' => 40.0, 'itemsArray' => [2]], false);
- $order->save(false);
-
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 1, 'quantity' => 1, 'subtotal' => 30.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 2, 'quantity' => 2, 'subtotal' => 40.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 4, 'quantity' => 1, 'subtotal' => 10.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 5, 'quantity' => 1, 'subtotal' => 15.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 3, 'quantity' => 1, 'subtotal' => 8.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 3, 'item_id' => 2, 'quantity' => 1, 'subtotal' => 40.0], false);
- $orderItem->save(false);
-
- $order = new OrderWithNullFK();
- $order->id = 1;
- $order->setAttributes(['customer_id' => 1, 'created_at' => 1325282384, 'total' => 110.0], false);
- $order->save(false);
- $order = new OrderWithNullFK();
- $order->id = 2;
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325334482, 'total' => 33.0], false);
- $order->save(false);
- $order = new OrderWithNullFK();
- $order->id = 3;
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325502201, 'total' => 40.0], false);
- $order->save(false);
-
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 1, 'quantity' => 1, 'subtotal' => 30.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 2, 'quantity' => 2, 'subtotal' => 40.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 4, 'quantity' => 1, 'subtotal' => 10.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 5, 'quantity' => 1, 'subtotal' => 15.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 3, 'quantity' => 1, 'subtotal' => 8.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 3, 'item_id' => 2, 'quantity' => 1, 'subtotal' => 40.0], false);
- $orderItem->save(false);
-
- $db->createCommand()->flushIndex('yiitest');
- }
-
- public function testSaveNoChanges()
- {
- // this should not fail with exception
- $customer = new Customer();
- // insert
- $customer->save(false);
- // update
- $customer->save(false);
- }
-
- public function testFindAsArray()
- {
- // asArray
- $customer = Customer::find()->where(['id' => 2])->asArray()->one();
- $this->assertEquals([
- 'id' => 2,
- 'email' => 'user2@example.com',
- 'name' => 'user2',
- 'address' => 'address2',
- 'status' => 1,
-// '_score' => 1.0
- ], $customer['_source']);
- }
-
- public function testSearch()
- {
- $customers = Customer::find()->search()['hits'];
- $this->assertEquals(3, $customers['total']);
- $this->assertEquals(3, count($customers['hits']));
- $this->assertTrue($customers['hits'][0] instanceof Customer);
- $this->assertTrue($customers['hits'][1] instanceof Customer);
- $this->assertTrue($customers['hits'][2] instanceof Customer);
-
- // limit vs. totalcount
- $customers = Customer::find()->limit(2)->search()['hits'];
- $this->assertEquals(3, $customers['total']);
- $this->assertEquals(2, count($customers['hits']));
-
- // asArray
- $result = Customer::find()->asArray()->search()['hits'];
- $this->assertEquals(3, $result['total']);
- $customers = $result['hits'];
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers[0]['_source']);
- $this->assertArrayHasKey('name', $customers[0]['_source']);
- $this->assertArrayHasKey('email', $customers[0]['_source']);
- $this->assertArrayHasKey('address', $customers[0]['_source']);
- $this->assertArrayHasKey('status', $customers[0]['_source']);
- $this->assertArrayHasKey('id', $customers[1]['_source']);
- $this->assertArrayHasKey('name', $customers[1]['_source']);
- $this->assertArrayHasKey('email', $customers[1]['_source']);
- $this->assertArrayHasKey('address', $customers[1]['_source']);
- $this->assertArrayHasKey('status', $customers[1]['_source']);
- $this->assertArrayHasKey('id', $customers[2]['_source']);
- $this->assertArrayHasKey('name', $customers[2]['_source']);
- $this->assertArrayHasKey('email', $customers[2]['_source']);
- $this->assertArrayHasKey('address', $customers[2]['_source']);
- $this->assertArrayHasKey('status', $customers[2]['_source']);
-
- // TODO test asArray() + fields() + indexBy()
-
- // find by attributes
- $result = Customer::find()->where(['name' => 'user2'])->search()['hits'];
- $customer = reset($result['hits']);
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals(2, $customer->id);
-
- // TODO test query() and filter()
- }
-
- // TODO test aggregations
-// public function testSearchFacets()
-// {
-// $result = Customer::find()->addAggregation('status_stats', ['field' => 'status'])->search();
-// $this->assertArrayHasKey('facets', $result);
-// $this->assertEquals(3, $result['facets']['status_stats']['count']);
-// $this->assertEquals(4, $result['facets']['status_stats']['total']); // sum of values
-// $this->assertEquals(1, $result['facets']['status_stats']['min']);
-// $this->assertEquals(2, $result['facets']['status_stats']['max']);
-// }
-
- public function testGetDb()
- {
- $this->mockApplication(['components' => ['elasticsearch' => Connection::className()]]);
- $this->assertInstanceOf(Connection::className(), ActiveRecord::getDb());
- }
-
- public function testGet()
- {
- $this->assertInstanceOf(Customer::className(), Customer::get(1));
- $this->assertNull(Customer::get(5));
- }
-
- public function testMget()
- {
- $this->assertEquals([], Customer::mget([]));
-
- $records = Customer::mget([1]);
- $this->assertEquals(1, count($records));
- $this->assertInstanceOf(Customer::className(), reset($records));
-
- $records = Customer::mget([5]);
- $this->assertEquals(0, count($records));
-
- $records = Customer::mget([1, 3, 5]);
- $this->assertEquals(2, count($records));
- $this->assertInstanceOf(Customer::className(), $records[0]);
- $this->assertInstanceOf(Customer::className(), $records[1]);
- }
-
- public function testFindLazy()
- {
- /* @var $customer Customer */
- $customer = Customer::findOne(2);
- $orders = $customer->orders;
- $this->assertEquals(2, count($orders));
-
- $orders = $customer->getOrders()->where(['between', 'created_at', 1325334000, 1325400000])->all();
- $this->assertEquals(1, count($orders));
- $this->assertEquals(2, $orders[0]->id);
- }
-
- public function testFindEagerViaRelation()
- {
- $orders = Order::find()->with('items')->orderBy('created_at')->all();
- $this->assertEquals(3, count($orders));
- $order = $orders[0];
- $this->assertEquals(1, $order->id);
- $this->assertTrue($order->isRelationPopulated('items'));
- $this->assertEquals(2, count($order->items));
- $this->assertEquals(1, $order->items[0]->id);
- $this->assertEquals(2, $order->items[1]->id);
- }
-
- public function testInsertNoPk()
- {
- $this->assertEquals(['id'], Customer::primaryKey());
- $pkName = 'id';
-
- $customer = new Customer;
- $customer->email = 'user4@example.com';
- $customer->name = 'user4';
- $customer->address = 'address4';
-
- $this->assertNull($customer->primaryKey);
- $this->assertNull($customer->oldPrimaryKey);
- $this->assertNull($customer->$pkName);
- $this->assertTrue($customer->isNewRecord);
-
- $customer->save();
- $this->afterSave();
-
- $this->assertNotNull($customer->primaryKey);
- $this->assertNotNull($customer->oldPrimaryKey);
- $this->assertNotNull($customer->$pkName);
- $this->assertEquals($customer->primaryKey, $customer->oldPrimaryKey);
- $this->assertEquals($customer->primaryKey, $customer->$pkName);
- $this->assertFalse($customer->isNewRecord);
- }
-
- public function testInsertPk()
- {
- $pkName = 'id';
-
- $customer = new Customer;
- $customer->$pkName = 5;
- $customer->email = 'user5@example.com';
- $customer->name = 'user5';
- $customer->address = 'address5';
-
- $this->assertTrue($customer->isNewRecord);
-
- $customer->save();
-
- $this->assertEquals(5, $customer->primaryKey);
- $this->assertEquals(5, $customer->oldPrimaryKey);
- $this->assertEquals(5, $customer->$pkName);
- $this->assertFalse($customer->isNewRecord);
- }
-
- public function testUpdatePk()
- {
- $pkName = 'id';
-
- $orderItem = Order::findOne([$pkName => 2]);
- $this->assertEquals(2, $orderItem->primaryKey);
- $this->assertEquals(2, $orderItem->oldPrimaryKey);
- $this->assertEquals(2, $orderItem->$pkName);
-
-// $this->setExpectedException('yii\base\InvalidCallException');
- $orderItem->$pkName = 13;
- $this->assertEquals(13, $orderItem->primaryKey);
- $this->assertEquals(2, $orderItem->oldPrimaryKey);
- $this->assertEquals(13, $orderItem->$pkName);
- $orderItem->save();
- $this->afterSave();
- $this->assertEquals(13, $orderItem->primaryKey);
- $this->assertEquals(13, $orderItem->oldPrimaryKey);
- $this->assertEquals(13, $orderItem->$pkName);
-
- $this->assertNull(Order::findOne([$pkName => 2]));
- $this->assertNotNull(Order::findOne([$pkName => 13]));
- }
-
- public function testFindLazyVia2()
- {
- /* @var $this TestCase|ActiveRecordTestTrait */
- /* @var $order Order */
- $orderClass = $this->getOrderClass();
- $pkName = 'id';
-
- $order = new $orderClass();
- $order->$pkName = 100;
- $this->assertEquals([], $order->items);
- }
-
- /**
- * Some PDO implementations(e.g. cubrid) do not support boolean values.
- * Make sure this does not affect AR layer.
- */
- public function testBooleanAttribute()
- {
- $db = $this->getConnection();
- Customer::deleteAll();
- Customer::setUpMapping($db->createCommand(), true);
-
- $customerClass = $this->getCustomerClass();
- $customer = new $customerClass();
- $customer->name = 'boolean customer';
- $customer->email = 'mail@example.com';
- $customer->status = true;
- $customer->save(false);
-
- $customer->refresh();
- $this->assertEquals(true, $customer->status);
-
- $customer->status = false;
- $customer->save(false);
-
- $customer->refresh();
- $this->assertEquals(false, $customer->status);
-
- $customer = new Customer();
- $customer->setAttributes(['email' => 'user2b@example.com', 'name' => 'user2b', 'status' => true], false);
- $customer->save(false);
- $customer = new Customer();
- $customer->setAttributes(['email' => 'user3b@example.com', 'name' => 'user3b', 'status' => false], false);
- $customer->save(false);
- $this->afterSave();
-
- $customers = Customer::find()->where(['status' => true])->all();
- $this->assertEquals(1, count($customers));
-
- $customers = Customer::find()->where(['status' => false])->all();
- $this->assertEquals(2, count($customers));
- }
-
- public function testScriptFields()
- {
- $orderItems = OrderItem::find()->fields([
- 'quantity',
- 'subtotal',
- 'total' => [
- 'script' => "doc['quantity'].value * doc['subtotal'].value",
- 'lang' => 'groovy',
- ]
- ])->all();
- $this->assertNotEmpty($orderItems);
- foreach($orderItems as $item) {
- $this->assertEquals($item->subtotal * $item->quantity, $item->total);
- }
- }
-
- public function testFindAsArrayFields()
- {
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy + asArray
- $customers = Customer::find()->asArray()->fields(['id', 'name'])->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers[0]['fields']);
- $this->assertArrayHasKey('name', $customers[0]['fields']);
- $this->assertArrayNotHasKey('email', $customers[0]['fields']);
- $this->assertArrayNotHasKey('address', $customers[0]['fields']);
- $this->assertArrayNotHasKey('status', $customers[0]['fields']);
- $this->assertArrayHasKey('id', $customers[1]['fields']);
- $this->assertArrayHasKey('name', $customers[1]['fields']);
- $this->assertArrayNotHasKey('email', $customers[1]['fields']);
- $this->assertArrayNotHasKey('address', $customers[1]['fields']);
- $this->assertArrayNotHasKey('status', $customers[1]['fields']);
- $this->assertArrayHasKey('id', $customers[2]['fields']);
- $this->assertArrayHasKey('name', $customers[2]['fields']);
- $this->assertArrayNotHasKey('email', $customers[2]['fields']);
- $this->assertArrayNotHasKey('address', $customers[2]['fields']);
- $this->assertArrayNotHasKey('status', $customers[2]['fields']);
- }
-
- public function testFindAsArraySourceFilter()
- {
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy + asArray
- $customers = Customer::find()->asArray()->source(['id', 'name'])->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers[0]['_source']);
- $this->assertArrayHasKey('name', $customers[0]['_source']);
- $this->assertArrayNotHasKey('email', $customers[0]['_source']);
- $this->assertArrayNotHasKey('address', $customers[0]['_source']);
- $this->assertArrayNotHasKey('status', $customers[0]['_source']);
- $this->assertArrayHasKey('id', $customers[1]['_source']);
- $this->assertArrayHasKey('name', $customers[1]['_source']);
- $this->assertArrayNotHasKey('email', $customers[1]['_source']);
- $this->assertArrayNotHasKey('address', $customers[1]['_source']);
- $this->assertArrayNotHasKey('status', $customers[1]['_source']);
- $this->assertArrayHasKey('id', $customers[2]['_source']);
- $this->assertArrayHasKey('name', $customers[2]['_source']);
- $this->assertArrayNotHasKey('email', $customers[2]['_source']);
- $this->assertArrayNotHasKey('address', $customers[2]['_source']);
- $this->assertArrayNotHasKey('status', $customers[2]['_source']);
- }
-
-
- public function testFindIndexBySource()
- {
- $customerClass = $this->getCustomerClass();
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy + asArray
- $customers = Customer::find()->indexBy('name')->source('id', 'name')->all();
- $this->assertEquals(3, count($customers));
- $this->assertTrue($customers['user1'] instanceof $customerClass);
- $this->assertTrue($customers['user2'] instanceof $customerClass);
- $this->assertTrue($customers['user3'] instanceof $customerClass);
- $this->assertNotNull($customers['user1']->id);
- $this->assertNotNull($customers['user1']->name);
- $this->assertNull($customers['user1']->email);
- $this->assertNull($customers['user1']->address);
- $this->assertNull($customers['user1']->status);
- $this->assertNotNull($customers['user2']->id);
- $this->assertNotNull($customers['user2']->name);
- $this->assertNull($customers['user2']->email);
- $this->assertNull($customers['user2']->address);
- $this->assertNull($customers['user2']->status);
- $this->assertNotNull($customers['user3']->id);
- $this->assertNotNull($customers['user3']->name);
- $this->assertNull($customers['user3']->email);
- $this->assertNull($customers['user3']->address);
- $this->assertNull($customers['user3']->status);
-
- // indexBy callable + asArray
- $customers = Customer::find()->indexBy(function ($customer) {
- return $customer->id . '-' . $customer->name;
- })->fields('id', 'name')->all();
- $this->assertEquals(3, count($customers));
- $this->assertTrue($customers['1-user1'] instanceof $customerClass);
- $this->assertTrue($customers['2-user2'] instanceof $customerClass);
- $this->assertTrue($customers['3-user3'] instanceof $customerClass);
- $this->assertNotNull($customers['1-user1']->id);
- $this->assertNotNull($customers['1-user1']->name);
- $this->assertNull($customers['1-user1']->email);
- $this->assertNull($customers['1-user1']->address);
- $this->assertNull($customers['1-user1']->status);
- $this->assertNotNull($customers['2-user2']->id);
- $this->assertNotNull($customers['2-user2']->name);
- $this->assertNull($customers['2-user2']->email);
- $this->assertNull($customers['2-user2']->address);
- $this->assertNull($customers['2-user2']->status);
- $this->assertNotNull($customers['3-user3']->id);
- $this->assertNotNull($customers['3-user3']->name);
- $this->assertNull($customers['3-user3']->email);
- $this->assertNull($customers['3-user3']->address);
- $this->assertNull($customers['3-user3']->status);
- }
-
- public function testFindIndexByAsArrayFields()
- {
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy + asArray
- $customers = Customer::find()->indexBy('name')->asArray()->fields('id', 'name')->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers['user1']['fields']);
- $this->assertArrayHasKey('name', $customers['user1']['fields']);
- $this->assertArrayNotHasKey('email', $customers['user1']['fields']);
- $this->assertArrayNotHasKey('address', $customers['user1']['fields']);
- $this->assertArrayNotHasKey('status', $customers['user1']['fields']);
- $this->assertArrayHasKey('id', $customers['user2']['fields']);
- $this->assertArrayHasKey('name', $customers['user2']['fields']);
- $this->assertArrayNotHasKey('email', $customers['user2']['fields']);
- $this->assertArrayNotHasKey('address', $customers['user2']['fields']);
- $this->assertArrayNotHasKey('status', $customers['user2']['fields']);
- $this->assertArrayHasKey('id', $customers['user3']['fields']);
- $this->assertArrayHasKey('name', $customers['user3']['fields']);
- $this->assertArrayNotHasKey('email', $customers['user3']['fields']);
- $this->assertArrayNotHasKey('address', $customers['user3']['fields']);
- $this->assertArrayNotHasKey('status', $customers['user3']['fields']);
-
- // indexBy callable + asArray
- $customers = Customer::find()->indexBy(function ($customer) {
- return reset($customer['fields']['id']) . '-' . reset($customer['fields']['name']);
- })->asArray()->fields('id', 'name')->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers['1-user1']['fields']);
- $this->assertArrayHasKey('name', $customers['1-user1']['fields']);
- $this->assertArrayNotHasKey('email', $customers['1-user1']['fields']);
- $this->assertArrayNotHasKey('address', $customers['1-user1']['fields']);
- $this->assertArrayNotHasKey('status', $customers['1-user1']['fields']);
- $this->assertArrayHasKey('id', $customers['2-user2']['fields']);
- $this->assertArrayHasKey('name', $customers['2-user2']['fields']);
- $this->assertArrayNotHasKey('email', $customers['2-user2']['fields']);
- $this->assertArrayNotHasKey('address', $customers['2-user2']['fields']);
- $this->assertArrayNotHasKey('status', $customers['2-user2']['fields']);
- $this->assertArrayHasKey('id', $customers['3-user3']['fields']);
- $this->assertArrayHasKey('name', $customers['3-user3']['fields']);
- $this->assertArrayNotHasKey('email', $customers['3-user3']['fields']);
- $this->assertArrayNotHasKey('address', $customers['3-user3']['fields']);
- $this->assertArrayNotHasKey('status', $customers['3-user3']['fields']);
- }
-
- public function testFindIndexByAsArray()
- {
- /* @var $customerClass \yii\db\ActiveRecordInterface */
- $customerClass = $this->getCustomerClass();
-
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy + asArray
- $customers = $customerClass::find()->asArray()->indexBy('name')->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers['user1']['_source']);
- $this->assertArrayHasKey('name', $customers['user1']['_source']);
- $this->assertArrayHasKey('email', $customers['user1']['_source']);
- $this->assertArrayHasKey('address', $customers['user1']['_source']);
- $this->assertArrayHasKey('status', $customers['user1']['_source']);
- $this->assertArrayHasKey('id', $customers['user2']['_source']);
- $this->assertArrayHasKey('name', $customers['user2']['_source']);
- $this->assertArrayHasKey('email', $customers['user2']['_source']);
- $this->assertArrayHasKey('address', $customers['user2']['_source']);
- $this->assertArrayHasKey('status', $customers['user2']['_source']);
- $this->assertArrayHasKey('id', $customers['user3']['_source']);
- $this->assertArrayHasKey('name', $customers['user3']['_source']);
- $this->assertArrayHasKey('email', $customers['user3']['_source']);
- $this->assertArrayHasKey('address', $customers['user3']['_source']);
- $this->assertArrayHasKey('status', $customers['user3']['_source']);
-
- // indexBy callable + asArray
- $customers = $customerClass::find()->indexBy(function ($customer) {
- return $customer['_source']['id'] . '-' . $customer['_source']['name'];
- })->asArray()->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers['1-user1']['_source']);
- $this->assertArrayHasKey('name', $customers['1-user1']['_source']);
- $this->assertArrayHasKey('email', $customers['1-user1']['_source']);
- $this->assertArrayHasKey('address', $customers['1-user1']['_source']);
- $this->assertArrayHasKey('status', $customers['1-user1']['_source']);
- $this->assertArrayHasKey('id', $customers['2-user2']['_source']);
- $this->assertArrayHasKey('name', $customers['2-user2']['_source']);
- $this->assertArrayHasKey('email', $customers['2-user2']['_source']);
- $this->assertArrayHasKey('address', $customers['2-user2']['_source']);
- $this->assertArrayHasKey('status', $customers['2-user2']['_source']);
- $this->assertArrayHasKey('id', $customers['3-user3']['_source']);
- $this->assertArrayHasKey('name', $customers['3-user3']['_source']);
- $this->assertArrayHasKey('email', $customers['3-user3']['_source']);
- $this->assertArrayHasKey('address', $customers['3-user3']['_source']);
- $this->assertArrayHasKey('status', $customers['3-user3']['_source']);
- }
-
- public function testAfterFindGet()
- {
- /* @var $customerClass BaseActiveRecord */
- $customerClass = $this->getCustomerClass();
-
- $afterFindCalls = [];
- Event::on(BaseActiveRecord::className(), BaseActiveRecord::EVENT_AFTER_FIND, function ($event) use (&$afterFindCalls) {
- /* @var $ar BaseActiveRecord */
- $ar = $event->sender;
- $afterFindCalls[] = [get_class($ar), $ar->getIsNewRecord(), $ar->getPrimaryKey(), $ar->isRelationPopulated('orders')];
- });
-
- $customer = Customer::get(1);
- $this->assertNotNull($customer);
- $this->assertEquals([[$customerClass, false, 1, false]], $afterFindCalls);
- $afterFindCalls = [];
-
- $customer = Customer::mget([1, 2]);
- $this->assertNotNull($customer);
- $this->assertEquals([
- [$customerClass, false, 1, false],
- [$customerClass, false, 2, false],
- ], $afterFindCalls);
- $afterFindCalls = [];
-
- Event::off(BaseActiveRecord::className(), BaseActiveRecord::EVENT_AFTER_FIND);
- }
-
- public function testFindEmptyPkCondition()
- {
- /* @var $this TestCase|ActiveRecordTestTrait */
- /* @var $orderItemClass \yii\db\ActiveRecordInterface */
- $orderItemClass = $this->getOrderItemClass();
- $orderItem = new $orderItemClass();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 1, 'quantity' => 1, 'subtotal' => 30.0], false);
- $orderItem->save(false);
- $this->afterSave();
-
- $orderItems = $orderItemClass::find()->where(['_id' => [$orderItem->getPrimaryKey()]])->all();
- $this->assertEquals(1, count($orderItems));
-
- $orderItems = $orderItemClass::find()->where(['_id' => []])->all();
- $this->assertEquals(0, count($orderItems));
-
- $orderItems = $orderItemClass::find()->where(['_id' => null])->all();
- $this->assertEquals(0, count($orderItems));
-
- $orderItems = $orderItemClass::find()->where(['IN', '_id', [$orderItem->getPrimaryKey()]])->all();
- $this->assertEquals(1, count($orderItems));
-
- $orderItems = $orderItemClass::find()->where(['IN', '_id', []])->all();
- $this->assertEquals(0, count($orderItems));
-
- $orderItems = $orderItemClass::find()->where(['IN', '_id', [null]])->all();
- $this->assertEquals(0, count($orderItems));
- }
-
- public function testArrayAttributes()
- {
- $this->assertTrue(is_array(Order::findOne(1)->itemsArray));
- $this->assertTrue(is_array(Order::findOne(2)->itemsArray));
- $this->assertTrue(is_array(Order::findOne(3)->itemsArray));
- }
-
- public function testArrayAttributeRelationLazy()
- {
- $order = Order::findOne(1);
- $items = $order->itemsByArrayValue;
- $this->assertEquals(2, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
- $this->assertTrue($items[1] instanceof Item);
- $this->assertTrue($items[2] instanceof Item);
-
- $order = Order::findOne(2);
- $items = $order->itemsByArrayValue;
- $this->assertEquals(3, count($items));
- $this->assertTrue(isset($items[3]));
- $this->assertTrue(isset($items[4]));
- $this->assertTrue(isset($items[5]));
- $this->assertTrue($items[3] instanceof Item);
- $this->assertTrue($items[4] instanceof Item);
- $this->assertTrue($items[5] instanceof Item);
- }
-
- public function testArrayAttributeRelationEager()
- {
- /* @var $order Order */
- $order = Order::find()->with('itemsByArrayValue')->where(['id' => 1])->one();
- $this->assertTrue($order->isRelationPopulated('itemsByArrayValue'));
- $items = $order->itemsByArrayValue;
- $this->assertEquals(2, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
- $this->assertTrue($items[1] instanceof Item);
- $this->assertTrue($items[2] instanceof Item);
-
- /* @var $order Order */
- $order = Order::find()->with('itemsByArrayValue')->where(['id' => 2])->one();
- $this->assertTrue($order->isRelationPopulated('itemsByArrayValue'));
- $items = $order->itemsByArrayValue;
- $this->assertEquals(3, count($items));
- $this->assertTrue(isset($items[3]));
- $this->assertTrue(isset($items[4]));
- $this->assertTrue(isset($items[5]));
- $this->assertTrue($items[3] instanceof Item);
- $this->assertTrue($items[4] instanceof Item);
- $this->assertTrue($items[5] instanceof Item);
- }
-
- public function testArrayAttributeRelationLink()
- {
- /* @var $order Order */
- $order = Order::find()->where(['id' => 1])->one();
- $items = $order->itemsByArrayValue;
- $this->assertEquals(2, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
-
- $item = Item::get(5);
- $order->link('itemsByArrayValue', $item);
- $this->afterSave();
-
- $items = $order->itemsByArrayValue;
- $this->assertEquals(3, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
- $this->assertTrue(isset($items[5]));
-
- // check also after refresh
- $this->assertTrue($order->refresh());
- $items = $order->itemsByArrayValue;
- $this->assertEquals(3, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
- $this->assertTrue(isset($items[5]));
- }
-
- public function testArrayAttributeRelationUnLink()
- {
- /* @var $order Order */
- $order = Order::find()->where(['id' => 1])->one();
- $items = $order->itemsByArrayValue;
- $this->assertEquals(2, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
-
- $item = Item::get(2);
- $order->unlink('itemsByArrayValue', $item);
- $this->afterSave();
-
- $items = $order->itemsByArrayValue;
- $this->assertEquals(1, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertFalse(isset($items[2]));
-
- // check also after refresh
- $this->assertTrue($order->refresh());
- $items = $order->itemsByArrayValue;
- $this->assertEquals(1, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertFalse(isset($items[2]));
- }
-
- /**
- * https://github.com/yiisoft/yii2/issues/6065
- */
- public function testArrayAttributeRelationUnLinkBrokenArray()
- {
- /* @var $order Order */
- $order = Order::find()->where(['id' => 1])->one();
-
- $itemIds = $order->itemsArray;
- $removeId = reset($itemIds);
- $item = Item::get($removeId);
- $order->unlink('itemsByArrayValue', $item);
- $this->afterSave();
-
- $items = $order->itemsByArrayValue;
- $this->assertEquals(1, count($items));
- $this->assertFalse(isset($items[$removeId]));
-
- // check also after refresh
- $this->assertTrue($order->refresh());
- $items = $order->itemsByArrayValue;
- $this->assertEquals(1, count($items));
- $this->assertFalse(isset($items[$removeId]));
- }
-
- /**
- * @expectedException \yii\base\NotSupportedException
- */
- public function testArrayAttributeRelationUnLinkAll()
- {
- /* @var $order Order */
- $order = Order::find()->where(['id' => 1])->one();
- $items = $order->itemsByArrayValue;
- $this->assertEquals(2, count($items));
- $this->assertTrue(isset($items[1]));
- $this->assertTrue(isset($items[2]));
-
- $order->unlinkAll('itemsByArrayValue');
- $this->afterSave();
-
- $items = $order->itemsByArrayValue;
- $this->assertEquals(0, count($items));
-
- // check also after refresh
- $this->assertTrue($order->refresh());
- $items = $order->itemsByArrayValue;
- $this->assertEquals(0, count($items));
- }
-
- public function testUnlinkAll()
- {
- // not supported by elasticsearch
- }
-
- /**
- * @expectedException \yii\base\NotSupportedException
- */
- public function testUnlinkAllAndConditionSetNull()
- {
- /* @var $customerClass \yii\db\BaseActiveRecord */
- $customerClass = $this->getCustomerClass();
- /* @var $orderClass \yii\db\BaseActiveRecord */
- $orderClass = $this->getOrderWithNullFKClass();
-
- // in this test all orders are owned by customer 1
- $orderClass::updateAll(['customer_id' => 1]);
- $this->afterSave();
-
- $customer = $customerClass::findOne(1);
- $this->assertEquals(3, count($customer->ordersWithNullFK));
- $this->assertEquals(1, count($customer->expensiveOrdersWithNullFK));
- $this->assertEquals(3, $orderClass::find()->count());
- $customer->unlinkAll('expensiveOrdersWithNullFK');
- }
-
- /**
- * @expectedException \yii\base\NotSupportedException
- */
- public function testUnlinkAllAndConditionDelete()
- {
- /* @var $customerClass \yii\db\BaseActiveRecord */
- $customerClass = $this->getCustomerClass();
- /* @var $orderClass \yii\db\BaseActiveRecord */
- $orderClass = $this->getOrderWithNullFKClass();
-
- // in this test all orders are owned by customer 1
- $orderClass::updateAll(['customer_id' => 1]);
- $this->afterSave();
-
- $customer = $customerClass::findOne(1);
- $this->assertEquals(3, count($customer->ordersWithNullFK));
- $this->assertEquals(1, count($customer->expensiveOrdersWithNullFK));
- $this->assertEquals(3, $orderClass::find()->count());
- $customer->unlinkAll('expensiveOrdersWithNullFK', true);
- }
-
- // TODO test AR with not mapped PK
-}
diff --git a/tests/unit/extensions/elasticsearch/ElasticSearchConnectionTest.php b/tests/unit/extensions/elasticsearch/ElasticSearchConnectionTest.php
deleted file mode 100644
index ee44ac9..0000000
--- a/tests/unit/extensions/elasticsearch/ElasticSearchConnectionTest.php
+++ /dev/null
@@ -1,27 +0,0 @@
-autodetectCluster;
- $connection->nodes = [
- ['http_address' => 'inet[/127.0.0.1:9200]'],
- ];
- $this->assertNull($connection->activeNode);
- $connection->open();
- $this->assertNotNull($connection->activeNode);
- $this->assertArrayHasKey('name', reset($connection->nodes));
-// $this->assertArrayHasKey('hostname', reset($connection->nodes));
- $this->assertArrayHasKey('version', reset($connection->nodes));
- $this->assertArrayHasKey('http_address', reset($connection->nodes));
- }
-}
diff --git a/tests/unit/extensions/elasticsearch/ElasticSearchTestCase.php b/tests/unit/extensions/elasticsearch/ElasticSearchTestCase.php
deleted file mode 100644
index d1a59b8..0000000
--- a/tests/unit/extensions/elasticsearch/ElasticSearchTestCase.php
+++ /dev/null
@@ -1,52 +0,0 @@
-mockApplication();
-
- $databases = self::getParam('databases');
- $params = isset($databases['elasticsearch']) ? $databases['elasticsearch'] : null;
- if ($params === null || !isset($params['dsn'])) {
- $this->markTestSkipped('No elasticsearch server connection configured.');
- }
- $dsn = explode('/', $params['dsn']);
- $host = $dsn[2];
- if (strpos($host, ':')===false) {
- $host .= ':9200';
- }
- if (!@stream_socket_client($host, $errorNumber, $errorDescription, 0.5)) {
- $this->markTestSkipped('No elasticsearch server running at ' . $params['dsn'] . ' : ' . $errorNumber . ' - ' . $errorDescription);
- }
-
- parent::setUp();
- }
-
- /**
- * @param boolean $reset whether to clean up the test database
- * @return Connection
- */
- public function getConnection($reset = true)
- {
- $databases = self::getParam('databases');
- $params = isset($databases['elasticsearch']) ? $databases['elasticsearch'] : [];
- $db = new Connection();
- if ($reset) {
- $db->open();
- }
-
- return $db;
- }
-}
diff --git a/tests/unit/extensions/elasticsearch/QueryBuilderTest.php b/tests/unit/extensions/elasticsearch/QueryBuilderTest.php
deleted file mode 100644
index bad2387..0000000
--- a/tests/unit/extensions/elasticsearch/QueryBuilderTest.php
+++ /dev/null
@@ -1,76 +0,0 @@
-getConnection()->createCommand();
-
- // delete index
- if ($command->indexExists('yiitest')) {
- $command->deleteIndex('yiitest');
- }
- }
-
- private function prepareDbData()
- {
- $command = $this->getConnection()->createCommand();
- $command->insert('yiitest', 'article', ['title' => 'I love yii!'], 1);
- $command->insert('yiitest', 'article', ['title' => 'Symfony2 is another framework'], 2);
- $command->insert('yiitest', 'article', ['title' => 'Yii2 out now!'], 3);
- $command->insert('yiitest', 'article', ['title' => 'yii test'], 4);
-
- $command->flushIndex('yiitest');
- }
-
- public function testQueryBuilderRespectsQuery()
- {
- $queryParts = ['field' => ['title' => 'yii']];
- $queryBuilder = new QueryBuilder($this->getConnection());
- $query = new Query();
- $query->query = $queryParts;
- $build = $queryBuilder->build($query);
- $this->assertTrue(array_key_exists('queryParts', $build));
- $this->assertTrue(array_key_exists('query', $build['queryParts']));
- $this->assertFalse(array_key_exists('match_all', $build['queryParts']), 'Match all should not be set');
- $this->assertSame($queryParts, $build['queryParts']['query']);
- }
-
- public function testYiiCanBeFoundByQuery()
- {
- $this->prepareDbData();
- $queryParts = ['term' => ['title' => 'yii']];
- $query = new Query();
- $query->from('yiitest', 'article');
- $query->query = $queryParts;
- $result = $query->search($this->getConnection());
- $this->assertEquals(2, $result['hits']['total']);
- }
-
- public function testFuzzySearch()
- {
- $this->prepareDbData();
- $queryParts = [
- "fuzzy_like_this" => [
- "fields" => ["title"],
- "like_text" => "Similar to YII",
- "max_query_terms" => 4
- ]
- ];
- $query = new Query();
- $query->from('yiitest', 'article');
- $query->query = $queryParts;
- $result = $query->search($this->getConnection());
- $this->assertEquals(3, $result['hits']['total']);
- }
-}
diff --git a/tests/unit/extensions/elasticsearch/QueryTest.php b/tests/unit/extensions/elasticsearch/QueryTest.php
deleted file mode 100644
index 1e853da..0000000
--- a/tests/unit/extensions/elasticsearch/QueryTest.php
+++ /dev/null
@@ -1,246 +0,0 @@
-getConnection()->createCommand();
-
- // delete index
- if ($command->indexExists('yiitest')) {
- $command->deleteIndex('yiitest');
- }
-
- $command->insert('yiitest', 'user', ['name' => 'user1', 'email' => 'user1@example.com', 'status' => 1], 1);
- $command->insert('yiitest', 'user', ['name' => 'user2', 'email' => 'user2@example.com', 'status' => 1], 2);
- $command->insert('yiitest', 'user', ['name' => 'user3', 'email' => 'user3@example.com', 'status' => 2], 3);
- $command->insert('yiitest', 'user', ['name' => 'user4', 'email' => 'user4@example.com', 'status' => 1], 4);
-
- $command->flushIndex();
- }
-
- public function testFields()
- {
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $query->fields(['name', 'status']);
- $this->assertEquals(['name', 'status'], $query->fields);
-
- $query->fields('name', 'status');
- $this->assertEquals(['name', 'status'], $query->fields);
-
- $result = $query->one($this->getConnection());
- $this->assertEquals(2, count($result['fields']));
- $this->assertArrayHasKey('status', $result['fields']);
- $this->assertArrayHasKey('name', $result['fields']);
- $this->assertArrayHasKey('_id', $result);
-
- $query->fields([]);
- $this->assertEquals([], $query->fields);
-
- $result = $query->one($this->getConnection());
- $this->assertArrayNotHasKey('fields', $result);
- $this->assertArrayHasKey('_id', $result);
-
- $query->fields(null);
- $this->assertNull($query->fields);
-
- $result = $query->one($this->getConnection());
- $this->assertEquals(3, count($result['_source']));
- $this->assertArrayHasKey('status', $result['_source']);
- $this->assertArrayHasKey('email', $result['_source']);
- $this->assertArrayHasKey('name', $result['_source']);
- $this->assertArrayHasKey('_id', $result);
- }
-
- public function testOne()
- {
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $result = $query->one($this->getConnection());
- $this->assertEquals(3, count($result['_source']));
- $this->assertArrayHasKey('status', $result['_source']);
- $this->assertArrayHasKey('email', $result['_source']);
- $this->assertArrayHasKey('name', $result['_source']);
- $this->assertArrayHasKey('_id', $result);
-
- $result = $query->where(['name' => 'user1'])->one($this->getConnection());
- $this->assertEquals(3, count($result['_source']));
- $this->assertArrayHasKey('status', $result['_source']);
- $this->assertArrayHasKey('email', $result['_source']);
- $this->assertArrayHasKey('name', $result['_source']);
- $this->assertArrayHasKey('_id', $result);
- $this->assertEquals(1, $result['_id']);
-
- $result = $query->where(['name' => 'user5'])->one($this->getConnection());
- $this->assertFalse($result);
- }
-
- public function testAll()
- {
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $results = $query->all($this->getConnection());
- $this->assertEquals(4, count($results));
- $result = reset($results);
- $this->assertEquals(3, count($result['_source']));
- $this->assertArrayHasKey('status', $result['_source']);
- $this->assertArrayHasKey('email', $result['_source']);
- $this->assertArrayHasKey('name', $result['_source']);
- $this->assertArrayHasKey('_id', $result);
-
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $results = $query->where(['name' => 'user1'])->all($this->getConnection());
- $this->assertEquals(1, count($results));
- $result = reset($results);
- $this->assertEquals(3, count($result['_source']));
- $this->assertArrayHasKey('status', $result['_source']);
- $this->assertArrayHasKey('email', $result['_source']);
- $this->assertArrayHasKey('name', $result['_source']);
- $this->assertArrayHasKey('_id', $result);
- $this->assertEquals(1, $result['_id']);
-
- // indexBy
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $results = $query->indexBy('name')->all($this->getConnection());
- $this->assertEquals(4, count($results));
- ksort($results);
- $this->assertEquals(['user1', 'user2', 'user3', 'user4'], array_keys($results));
- }
-
- public function testScalar()
- {
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $result = $query->where(['name' => 'user1'])->scalar('name', $this->getConnection());
- $this->assertEquals('user1', $result);
- $result = $query->where(['name' => 'user1'])->scalar('noname', $this->getConnection());
- $this->assertNull($result);
- $result = $query->where(['name' => 'user5'])->scalar('name', $this->getConnection());
- $this->assertNull($result);
- }
-
- public function testColumn()
- {
- $query = new Query;
- $query->from('yiitest', 'user');
-
- $result = $query->orderBy(['name' => SORT_ASC])->column('name', $this->getConnection());
- $this->assertEquals(['user1', 'user2', 'user3', 'user4'], $result);
- $result = $query->column('noname', $this->getConnection());
- $this->assertEquals([null, null, null, null], $result);
- $result = $query->where(['name' => 'user5'])->scalar('name', $this->getConnection());
- $this->assertNull($result);
-
- }
-
- public function testFilterWhere()
- {
- // should work with hash format
- $query = new Query;
- $query->filterWhere([
- 'id' => 0,
- 'title' => ' ',
- 'author_ids' => [],
- ]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->andFilterWhere(['status' => null]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->orFilterWhere(['name' => '']);
- $this->assertEquals(['id' => 0], $query->where);
-
- // should work with operator format
- $query = new Query;
- $condition = ['like', 'name', 'Alex'];
- $query->filterWhere($condition);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->orFilterWhere(['not between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not like', 'id', ' ']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or not like', 'id', null]);
- $this->assertEquals($condition, $query->where);
- }
-
- public function testFilterWhereRecursively()
- {
- $query = new Query();
- $query->filterWhere(['and', ['like', 'name', ''], ['like', 'title', ''], ['id' => 1], ['not', ['like', 'name', '']]]);
- $this->assertEquals(['and', ['id' => 1]], $query->where);
- }
-
- // TODO test facets
-
- // TODO test complex where() every edge of QueryBuilder
-
- public function testOrder()
- {
- $query = new Query;
- $query->orderBy('team');
- $this->assertEquals(['team' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('company');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('age');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy(['age' => SORT_DESC]);
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_DESC], $query->orderBy);
-
- $query->addOrderBy('age ASC, company DESC');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_DESC, 'age' => SORT_ASC], $query->orderBy);
- }
-
- public function testLimitOffset()
- {
- $query = new Query;
- $query->limit(10)->offset(5);
- $this->assertEquals(10, $query->limit);
- $this->assertEquals(5, $query->offset);
- }
-
- public function testUnion()
- {
- }
-}
diff --git a/tests/unit/extensions/faker/FixtureControllerTest.php b/tests/unit/extensions/faker/FixtureControllerTest.php
deleted file mode 100644
index d9d2143..0000000
--- a/tests/unit/extensions/faker/FixtureControllerTest.php
+++ /dev/null
@@ -1,171 +0,0 @@
-markTestSkipped('Can not test on HHVM because require is cached.');
- }
-
- $this->mockApplication();
-
- $this->_fixtureController = Yii::createObject([
- 'class' => 'yiiunit\extensions\faker\FixtureConsoledController',
- 'interactive' => false,
- 'fixtureDataPath' => '@runtime/faker',
- 'templatePath' => '@yiiunit/data/extensions/faker/templates'
- ],['fixture-faker', Yii::$app]);
- }
-
- public function tearDown()
- {
- @unlink(Yii::getAlias('@runtime/faker/user.php'));
- @unlink(Yii::getAlias('@runtime/faker/profile.php'));
- @unlink(Yii::getAlias('@runtime/faker/book.php'));
- parent::tearDown();
- }
-
- public function testGenerateOne()
- {
- $filename = Yii::getAlias('@runtime/faker/user.php');
- $this->assertFileNotExists($filename, 'file to be generated should not exist before');
-
- $this->_fixtureController->actionGenerate('user');
- $this->assertFileExists($filename, 'fixture template file should be generated');
-
- $generatedData = require Yii::getAlias('@runtime/faker/user.php');
- $this->assertCount(2, $generatedData, 'by default only 2 fixtures should be generated');
-
- foreach ($generatedData as $fixtureData) {
- $this->assertNotNull($fixtureData['username'], 'generated "username" should not be empty');
- $this->assertNotNull($fixtureData['email'], 'generated "email" should not be empty');
- $this->assertNotNull($fixtureData['auth_key'], 'generated "auth_key" should not be empty');
- $this->assertNotNull($fixtureData['created_at'],'generated "created_at" should not be empty');
- $this->assertNotNull($fixtureData['updated_at'],'generated "updated_at" should not be empty');
- }
- }
-
- public function testGenerateBoth()
- {
- $userFilename = Yii::getAlias('@runtime/faker/user.php');
- $this->assertFileNotExists($userFilename, 'file to be generated should not exist before');
-
- $profileFilename = Yii::getAlias('@runtime/faker/profile.php');
- $this->assertFileNotExists($profileFilename, 'file to be generated should not exist before');
-
- $this->_fixtureController->actionGenerate('user', 'profile');
- $this->assertFileExists($userFilename, 'fixture template file should be generated');
- $this->assertFileExists($profileFilename, 'fixture template file should be generated');
- }
-
- public function testGenerateNotFound()
- {
- $fileName = Yii::getAlias('@runtime/faker/not_existing_template.php');
- $this->_fixtureController->actionGenerate('not_existing_template');
- $this->assertFileNotExists($fileName, 'not existing template should not be generated');
- }
-
- public function testGenerateProvider()
- {
- $bookFilename = Yii::getAlias('@runtime/faker/book.php');
- $this->assertFileNotExists($bookFilename, 'file to be generated should not exist before');
-
- $this->_fixtureController->providers[] = 'yiiunit\data\extensions\faker\providers\Book';
- $this->_fixtureController->run('generate',['book']);
- $this->assertFileExists($bookFilename, 'fixture template file should be generated');
- }
-
- /**
- * @expectedException yii\console\Exception
- */
- public function testNothingToGenerateException()
- {
- $this->_fixtureController->actionGenerate();
- }
-
- /**
- * @expectedException yii\console\Exception
- */
- public function testWrongTemplatePathException()
- {
- $this->_fixtureController->templatePath = '@not/existing/fixtures/templates/path';
- $this->_fixtureController->run('generate',['user']);
- }
-
- public function testGenerateParticularTimes()
- {
- $filename = Yii::getAlias('@runtime/faker/user.php');
- $this->assertFileNotExists($filename, 'file to be generated should not exist before');
-
- $this->_fixtureController->count = 5;
- $this->_fixtureController->actionGenerate('user');
- $this->assertFileExists($filename, 'fixture template file should be generated');
-
- $generatedData = require Yii::getAlias('@runtime/faker/user.php');
- $this->assertCount(5, $generatedData, 'exactly 5 fixtures should be generated for the given template');
- }
-
- public function testGenerateParticlularLanguage()
- {
- $filename = Yii::getAlias('@runtime/faker/profile.php');
- $this->assertFileNotExists($filename, 'file to be generated should not exist before');
-
- $this->_fixtureController->language = 'ru_RU';
- $this->_fixtureController->actionGenerate('profile');
- $this->assertFileExists($filename, 'fixture template file should be generated');
-
- $generatedData = require Yii::getAlias('@runtime/faker/profile.php');
- $this->assertEquals(1, preg_match('/^[а-яё]*$/iu', $generatedData[0]['first_name']), 'generated value should be in ru-RU language');
- }
-
- public function testGenerateAll()
- {
- $userFilename = Yii::getAlias('@runtime/faker/user.php');
- $this->assertFileNotExists($userFilename, 'file to be generated should not exist before');
-
- $profileFilename = Yii::getAlias('@runtime/faker/profile.php');
- $this->assertFileNotExists($profileFilename, 'file to be generated should not exist before');
-
- $bookFilename = Yii::getAlias('@runtime/faker/book.php');
- $this->assertFileNotExists($bookFilename, 'file to be generated should not exist before');
-
- $this->_fixtureController->providers[] = 'yiiunit\data\extensions\faker\providers\Book';
- $this->_fixtureController->run('generate-all');
-
- $this->assertFileExists($userFilename, 'fixture template file should be generated');
- $this->assertFileExists($profileFilename, 'fixture template file should be generated');
- $this->assertFileExists($bookFilename, 'fixture template file should be generated');
- }
-
-}
-
-class FixtureConsoledController extends FixtureController
-{
-
- public function stdout($string)
- {
- }
-
-}
diff --git a/tests/unit/extensions/gii/GeneratorsTest.php b/tests/unit/extensions/gii/GeneratorsTest.php
deleted file mode 100644
index 79a70a8..0000000
--- a/tests/unit/extensions/gii/GeneratorsTest.php
+++ /dev/null
@@ -1,110 +0,0 @@
-template = 'default';
- $generator->controllerClass = 'test';
-
- if ($generator->validate()) {
- $generator->generate();
- } else {
- print_r($generator->getErrors());
- }
- }
-
- public function testExtensionGenerator()
- {
- $generator = new ExtensionGenerator();
- $generator->template = 'default';
- $generator->vendorName = 'samdark';
- $generator->namespace = 'samdark\\';
- $generator->license = 'BSD';
- $generator->title = 'Sample extension';
- $generator->description = 'This is sample description.';
- $generator->authorName = 'Alexander Makarov';
- $generator->authorEmail = 'sam@rmcreative.ru';
-
- if ($generator->validate()) {
- $generator->generate();
- } else {
- print_r($generator->getErrors());
- }
- }
-
- public function testModelGenerator()
- {
- $generator = new ModelGenerator();
- $generator->template = 'default';
- $generator->tableName = 'profile';
- $generator->modelClass = 'Profile';
-
- if ($generator->validate()) {
- $files = $generator->generate();
- $modelCode = $files[0]->content;
-
- $this->assertTrue(strpos($modelCode, "'id' => 'ID'") !== false, "ID label should be there:\n" . $modelCode);
- $this->assertTrue(strpos($modelCode, "'description' => 'Description',") !== false, "Description label should be there:\n" . $modelCode);
- } else {
- print_r($generator->getErrors());
- }
- }
-
- public function testModuleGenerator()
- {
- $generator = new ModuleGenerator();
- $generator->template = 'default';
- $generator->moduleID = 'test';
- $generator->moduleClass = 'app\modules\test\Module';
-
- if ($generator->validate()) {
- $generator->generate();
- } else {
- print_r($generator->getErrors());
- }
- }
-
-
- public function testFormGenerator()
- {
- $generator = new FormGenerator();
- $generator->template = 'default';
- $generator->modelClass = 'yiiunit\extensions\gii\Profile';
- $generator->viewName = 'profile';
- $generator->viewPath = '@yiiunit/runtime';
-
- if ($generator->validate()) {
- $generator->generate();
- } else {
- print_r($generator->getErrors());
- }
- }
-
- public function testCRUDGenerator()
- {
- $generator = new CRUDGenerator();
- $generator->template = 'default';
- $generator->modelClass = 'yiiunit\extensions\gii\Profile';
- $generator->controllerClass = 'app\TestController';
-
- if ($generator->validate()) {
- $generator->generate();
- } else {
- print_r($generator->getErrors());
- }
- }
-}
diff --git a/tests/unit/extensions/gii/GiiTestCase.php b/tests/unit/extensions/gii/GiiTestCase.php
deleted file mode 100644
index 291065b..0000000
--- a/tests/unit/extensions/gii/GiiTestCase.php
+++ /dev/null
@@ -1,49 +0,0 @@
-driverName];
- $pdo_database = 'pdo_'.$this->driverName;
-
- if (!extension_loaded('pdo') || !extension_loaded($pdo_database)) {
- $this->markTestSkipped('pdo and '.$pdo_database.' extension are required.');
- }
-
- $this->mockApplication([
- 'components' => [
- 'db' => [
- 'class' => isset($config['class']) ? $config['class'] : 'yii\db\Connection',
- 'dsn' => $config['dsn'],
- 'username' => isset($config['username']) ? $config['username'] : null,
- 'password' => isset($config['password']) ? $config['password'] : null,
- ],
- ],
- ]);
-
- if(isset($config['fixture'])) {
- Yii::$app->db->open();
- $lines = explode(';', file_get_contents($config['fixture']));
- foreach ($lines as $line) {
- if (trim($line) !== '') {
- Yii::$app->db->pdo->exec($line);
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/gii/Profile.php b/tests/unit/extensions/gii/Profile.php
deleted file mode 100644
index 1635b16..0000000
--- a/tests/unit/extensions/gii/Profile.php
+++ /dev/null
@@ -1,40 +0,0 @@
- 128]
- ];
- }
-
- /**
- * @inheritdoc
- */
- public function attributeLabels()
- {
- return [
- 'id' => 'ID',
- 'description' => 'Description',
- ];
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/imagine/AbstractImageTest.php b/tests/unit/extensions/imagine/AbstractImageTest.php
deleted file mode 100644
index aac94d5..0000000
--- a/tests/unit/extensions/imagine/AbstractImageTest.php
+++ /dev/null
@@ -1,98 +0,0 @@
-imageFile = Yii::getAlias('@yiiunit/data/imagine/large') . '.jpg';
- $this->watermarkFile = Yii::getAlias('@yiiunit/data/imagine/xparent') . '.gif';
- $this->runtimeTextFile = Yii::getAlias('@yiiunit/runtime/image-text-test') . '.png';
- $this->runtimeWatermarkFile = Yii::getAlias('@yiiunit/runtime/image-watermark-test') . '.png';
- parent::setUp();
- }
-
- protected function tearDown()
- {
- @unlink($this->runtimeTextFile);
- @unlink($this->runtimeWatermarkFile);
- }
-
- public function testText()
- {
- if (!$this->isFontTestSupported()) {
- $this->markTestSkipped('Skipping ImageGdTest Gd not installed');
- }
-
- $fontFile = Yii::getAlias('@yiiunit/data/imagine/GothamRnd-Light') . '.otf';
-
- $img = Image::text($this->imageFile, 'Yii-2 Image', $fontFile, [0, 0], [
- 'size' => 12,
- 'color' => '000'
- ]);
-
- $img->save($this->runtimeTextFile);
- $this->assertTrue(file_exists($this->runtimeTextFile));
-
- }
-
- public function testCrop()
- {
- $point = [20, 20];
- $img = Image::crop($this->imageFile, 100, 100, $point);
-
- $this->assertEquals(100, $img->getSize()->getWidth());
- $this->assertEquals(100, $img->getSize()->getHeight());
-
- }
-
- public function testWatermark()
- {
- $img = Image::watermark($this->imageFile, $this->watermarkFile);
- $img->save($this->runtimeWatermarkFile);
- $this->assertTrue(file_exists($this->runtimeWatermarkFile));
- }
-
- public function testFrame()
- {
- $frameSize = 5;
- $original = Image::getImagine()->open($this->imageFile);
- $originalSize = $original->getSize();
- $img = Image::frame($this->imageFile, $frameSize, '666', 0);
- $size = $img->getSize();
-
- $this->assertEquals($size->getWidth(), $originalSize->getWidth() + ($frameSize * 2));
- }
-
- public function testThumbnail()
- {
- $img = Image::thumbnail($this->imageFile, 120, 120);
-
- $this->assertEquals(120, $img->getSize()->getWidth());
- $this->assertEquals(120, $img->getSize()->getHeight());
- }
-
- /**
- * @expectedException \yii\base\InvalidConfigException
- */
- public function testShouldThrowExceptionOnDriverInvalidArgument()
- {
- Image::setImagine(null);
- Image::$driver = 'fake-driver';
- Image::getImagine();
- }
-
- abstract protected function isFontTestSupported();
-}
diff --git a/tests/unit/extensions/imagine/ImageGdTest.php b/tests/unit/extensions/imagine/ImageGdTest.php
deleted file mode 100644
index 322ceb1..0000000
--- a/tests/unit/extensions/imagine/ImageGdTest.php
+++ /dev/null
@@ -1,30 +0,0 @@
-markTestSkipped('Skipping ImageGdTest, Gd not installed');
- } else {
- Image::setImagine(null);
- Image::$driver = Image::DRIVER_GD2;
- parent::setUp();
- }
- }
-
- protected function isFontTestSupported()
- {
- $infos = gd_info();
-
- return isset($infos['FreeType Support']) ? $infos['FreeType Support'] : false;
- }
-}
diff --git a/tests/unit/extensions/imagine/ImageGmagickTest.php b/tests/unit/extensions/imagine/ImageGmagickTest.php
deleted file mode 100644
index bfa4e94..0000000
--- a/tests/unit/extensions/imagine/ImageGmagickTest.php
+++ /dev/null
@@ -1,29 +0,0 @@
-markTestSkipped('Skipping ImageGmagickTest, Gmagick is not installed');
- } else {
- Image::setImagine(null);
- Image::$driver = Image::DRIVER_GMAGICK;
- parent::setUp();
- }
- }
-
- protected function isFontTestSupported()
- {
- return true;
- }
-}
diff --git a/tests/unit/extensions/imagine/ImageImagickTest.php b/tests/unit/extensions/imagine/ImageImagickTest.php
deleted file mode 100644
index c768612..0000000
--- a/tests/unit/extensions/imagine/ImageImagickTest.php
+++ /dev/null
@@ -1,31 +0,0 @@
-markTestSkipped('Skipping ImageImagickTest, Imagick is not installed');
- } elseif (defined('HHVM_VERSION')) {
- $this->markTestSkipped('Imagine does not seem to support HHVM right now.');
- } else {
- Image::setImagine(null);
- Image::$driver = Image::DRIVER_IMAGICK;
- parent::setUp();
- }
- }
-
- protected function isFontTestSupported()
- {
- return true;
- }
-}
diff --git a/tests/unit/extensions/mongodb/ActiveDataProviderTest.php b/tests/unit/extensions/mongodb/ActiveDataProviderTest.php
deleted file mode 100644
index f90c5d1..0000000
--- a/tests/unit/extensions/mongodb/ActiveDataProviderTest.php
+++ /dev/null
@@ -1,91 +0,0 @@
-getConnection();
- $this->setUpTestRows();
- }
-
- protected function tearDown()
- {
- $this->dropCollection(Customer::collectionName());
- parent::tearDown();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [];
- for ($i = 1; $i <= 10; $i++) {
- $rows[] = [
- 'name' => 'name' . $i,
- 'email' => 'email' . $i,
- 'address' => 'address' . $i,
- 'status' => $i,
- ];
- }
- $collection->batchInsert($rows);
- }
-
- // Tests :
-
- public function testQuery()
- {
- $query = new Query;
- $query->from('customer');
-
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(10, count($models));
-
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- 'pagination' => [
- 'pageSize' => 5,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(5, count($models));
- }
-
- public function testActiveQuery()
- {
- $provider = new ActiveDataProvider([
- 'query' => Customer::find()->orderBy('id ASC'),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(10, count($models));
- $this->assertTrue($models[0] instanceof Customer);
- $keys = $provider->getKeys();
- $this->assertTrue($keys[0] instanceof \MongoId);
-
- $provider = new ActiveDataProvider([
- 'query' => Customer::find(),
- 'pagination' => [
- 'pageSize' => 5,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(5, count($models));
- }
-}
diff --git a/tests/unit/extensions/mongodb/ActiveRecordTest.php b/tests/unit/extensions/mongodb/ActiveRecordTest.php
deleted file mode 100644
index ac0f12c..0000000
--- a/tests/unit/extensions/mongodb/ActiveRecordTest.php
+++ /dev/null
@@ -1,297 +0,0 @@
-getConnection();
- $this->setUpTestRows();
- }
-
- protected function tearDown()
- {
- $this->dropCollection(Customer::collectionName());
- parent::tearDown();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [];
- for ($i = 1; $i <= 10; $i++) {
- $rows[] = [
- 'name' => 'name' . $i,
- 'email' => 'email' . $i,
- 'address' => 'address' . $i,
- 'status' => $i,
- ];
- }
- $collection->batchInsert($rows);
- $this->testRows = $rows;
- }
-
- // Tests :
-
- public function testFind()
- {
- // find one
- $result = Customer::find();
- $this->assertTrue($result instanceof ActiveQuery);
- $customer = $result->one();
- $this->assertTrue($customer instanceof Customer);
-
- // find all
- $customers = Customer::find()->all();
- $this->assertEquals(10, count($customers));
- $this->assertTrue($customers[0] instanceof Customer);
- $this->assertTrue($customers[1] instanceof Customer);
-
- // find by _id
- $testId = $this->testRows[0]['_id'];
- $customer = Customer::findOne($testId);
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals($testId, $customer->_id);
-
- // find by column values
- $customer = Customer::findOne(['name' => 'name5']);
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals($this->testRows[4]['_id'], $customer->_id);
- $this->assertEquals('name5', $customer->name);
- $customer = Customer::findOne(['name' => 'unexisting name']);
- $this->assertNull($customer);
-
- // find by attributes
- $customer = Customer::find()->where(['status' => 4])->one();
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals(4, $customer->status);
-
- // find count, sum, average, min, max, distinct
- $this->assertEquals(10, Customer::find()->count());
- $this->assertEquals(1, Customer::find()->where(['status' => 2])->count());
- $this->assertEquals((1+10)/2*10, Customer::find()->sum('status'));
- $this->assertEquals((1+10)/2, Customer::find()->average('status'));
- $this->assertEquals(1, Customer::find()->min('status'));
- $this->assertEquals(10, Customer::find()->max('status'));
- $this->assertEquals(range(1, 10), Customer::find()->distinct('status'));
-
- // scope
- $this->assertEquals(1, Customer::find()->activeOnly()->count());
-
- // asArray
- $testRow = $this->testRows[2];
- $customer = Customer::find()->where(['_id' => $testRow['_id']])->asArray()->one();
- $this->assertEquals($testRow, $customer);
-
- // indexBy
- $customers = Customer::find()->indexBy('name')->all();
- $this->assertTrue($customers['name1'] instanceof Customer);
- $this->assertTrue($customers['name2'] instanceof Customer);
-
- // indexBy callable
- $customers = Customer::find()->indexBy(function ($customer) {
- return $customer->status . '-' . $customer->status;
- })->all();
- $this->assertTrue($customers['1-1'] instanceof Customer);
- $this->assertTrue($customers['2-2'] instanceof Customer);
- }
-
- public function testInsert()
- {
- $record = new Customer;
- $record->name = 'new name';
- $record->email = 'new email';
- $record->address = 'new address';
- $record->status = 7;
-
- $this->assertTrue($record->isNewRecord);
-
- $record->save();
-
- $this->assertTrue($record->_id instanceof \MongoId);
- $this->assertFalse($record->isNewRecord);
- }
-
- /**
- * @depends testInsert
- */
- public function testUpdate()
- {
- $record = new Customer;
- $record->name = 'new name';
- $record->email = 'new email';
- $record->address = 'new address';
- $record->status = 7;
- $record->save();
-
- // save
- $record = Customer::findOne($record->_id);
- $this->assertTrue($record instanceof Customer);
- $this->assertEquals(7, $record->status);
- $this->assertFalse($record->isNewRecord);
-
- $record->status = 9;
- $record->save();
- $this->assertEquals(9, $record->status);
- $this->assertFalse($record->isNewRecord);
- $record2 = Customer::findOne($record->_id);
- $this->assertEquals(9, $record2->status);
-
- // updateAll
- $pk = ['_id' => $record->_id];
- $ret = Customer::updateAll(['status' => 55], $pk);
- $this->assertEquals(1, $ret);
- $record = Customer::findOne($pk);
- $this->assertEquals(55, $record->status);
- }
-
- /**
- * @depends testInsert
- */
- public function testDelete()
- {
- // delete
- $record = new Customer;
- $record->name = 'new name';
- $record->email = 'new email';
- $record->address = 'new address';
- $record->status = 7;
- $record->save();
-
- $record = Customer::findOne($record->_id);
- $record->delete();
- $record = Customer::findOne($record->_id);
- $this->assertNull($record);
-
- // deleteAll
- $record = new Customer;
- $record->name = 'new name';
- $record->email = 'new email';
- $record->address = 'new address';
- $record->status = 7;
- $record->save();
-
- $ret = Customer::deleteAll(['name' => 'new name']);
- $this->assertEquals(1, $ret);
- $records = Customer::find()->where(['name' => 'new name'])->all();
- $this->assertEquals(0, count($records));
- }
-
- public function testUpdateAllCounters()
- {
- $this->assertEquals(1, Customer::updateAllCounters(['status' => 10], ['status' => 10]));
-
- $record = Customer::findOne(['status' => 10]);
- $this->assertNull($record);
- }
-
- /**
- * @depends testUpdateAllCounters
- */
- public function testUpdateCounters()
- {
- $record = Customer::findOne($this->testRows[9]);
-
- $originalCounter = $record->status;
- $counterIncrement = 20;
- $record->updateCounters(['status' => $counterIncrement]);
- $this->assertEquals($originalCounter + $counterIncrement, $record->status);
-
- $refreshedRecord = Customer::findOne($record->_id);
- $this->assertEquals($originalCounter + $counterIncrement, $refreshedRecord->status);
- }
-
- /**
- * @depends testUpdate
- */
- public function testUpdateNestedAttribute()
- {
- $record = new Customer;
- $record->name = 'new name';
- $record->email = 'new email';
- $record->address = [
- 'city' => 'SomeCity',
- 'street' => 'SomeStreet',
- ];
- $record->status = 7;
- $record->save();
-
- // save
- $record = Customer::findOne($record->_id);
- $newAddress = [
- 'city' => 'AnotherCity'
- ];
- $record->address = $newAddress;
- $record->save();
- $record2 = Customer::findOne($record->_id);
- $this->assertEquals($newAddress, $record2->address);
- }
-
- /**
- * @depends testFind
- * @depends testInsert
- */
- public function testQueryByIntegerField()
- {
- $record = new Customer;
- $record->name = 'new name';
- $record->status = 7;
- $record->save();
-
- $row = Customer::find()->where(['status' => 7])->one();
- $this->assertNotEmpty($row);
- $this->assertEquals(7, $row->status);
-
- $rowRefreshed = Customer::find()->where(['status' => $row->status])->one();
- $this->assertNotEmpty($rowRefreshed);
- $this->assertEquals(7, $rowRefreshed->status);
- }
-
- public function testModify()
- {
- $searchName = 'name7';
- $newName = 'new name';
-
- $customer = Customer::find()
- ->where(['name' => $searchName])
- ->modify(['$set' => ['name' => $newName]], ['new' => true]);
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals($newName, $customer->name);
-
- $customer = Customer::find()
- ->where(['name' => 'not existing name'])
- ->modify(['$set' => ['name' => $newName]], ['new' => false]);
- $this->assertNull($customer);
- }
-
- /**
- * @depends testInsert
- *
- * @see https://github.com/yiisoft/yii2/issues/6026
- */
- public function testInsertEmptyAttributes()
- {
- $record = new Customer();
- $record->save(false);
-
- $this->assertTrue($record->_id instanceof \MongoId);
- $this->assertFalse($record->isNewRecord);
- }
-}
diff --git a/tests/unit/extensions/mongodb/ActiveRelationTest.php b/tests/unit/extensions/mongodb/ActiveRelationTest.php
deleted file mode 100644
index 1212537..0000000
--- a/tests/unit/extensions/mongodb/ActiveRelationTest.php
+++ /dev/null
@@ -1,114 +0,0 @@
-getConnection();
- $this->setUpTestRows();
- }
-
- protected function tearDown()
- {
- $this->dropCollection(Customer::collectionName());
- $this->dropCollection(CustomerOrder::collectionName());
- parent::tearDown();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $customers = [];
- for ($i = 1; $i <= 5; $i++) {
- $customers[] = [
- 'name' => 'name' . $i,
- 'email' => 'email' . $i,
- 'address' => 'address' . $i,
- 'status' => $i,
- ];
- }
- $customerCollection = $this->getConnection()->getCollection('customer');
- $customers = $customerCollection->batchInsert($customers);
-
- $items = [];
- for ($i = 1; $i <= 10; $i++) {
- $items[] = [
- 'name' => 'name' . $i,
- 'price' => $i,
- ];
- }
- $itemCollection = $this->getConnection()->getCollection('item');
- $items = $itemCollection->batchInsert($items);
-
- $customerOrders = [];
- foreach ($customers as $i => $customer) {
- $customerOrders[] = [
- 'customer_id' => $customer['_id'],
- 'number' => $customer['status'],
- 'item_ids' => [
- $items[$i]['_id'],
- $items[$i+5]['_id'],
- ],
- ];
- $customerOrders[] = [
- 'customer_id' => $customer['_id'],
- 'number' => $customer['status'] + 100,
- 'item_ids' => [
- $items[$i]['_id'],
- $items[$i+5]['_id'],
- ],
- ];
- }
- $customerOrderCollection = $this->getConnection()->getCollection('customer_order');
- $customerOrderCollection->batchInsert($customerOrders);
- }
-
- // Tests :
-
- public function testFindLazy()
- {
- /* @var $order CustomerOrder */
- $order = CustomerOrder::findOne(['number' => 2]);
- $this->assertFalse($order->isRelationPopulated('customer'));
- $customer = $order->customer;
- $this->assertTrue($order->isRelationPopulated('customer'));
- $this->assertTrue($customer instanceof Customer);
- $this->assertEquals((string) $customer->_id, (string) $order->customer_id);
- $this->assertEquals(1, count($order->relatedRecords));
- }
-
- public function testFindEager()
- {
- $orders = CustomerOrder::find()->with('customer')->all();
- $this->assertEquals(10, count($orders));
- $this->assertTrue($orders[0]->isRelationPopulated('customer'));
- $this->assertTrue($orders[1]->isRelationPopulated('customer'));
- $this->assertTrue($orders[0]->customer instanceof Customer);
- $this->assertEquals((string) $orders[0]->customer->_id, (string) $orders[0]->customer_id);
- $this->assertTrue($orders[1]->customer instanceof Customer);
- $this->assertEquals((string) $orders[1]->customer->_id, (string) $orders[1]->customer_id);
- }
-
- /**
- * @see https://github.com/yiisoft/yii2/issues/5411
- *
- * @depends testFindEager
- */
- public function testFindEagerHasManyByArrayKey()
- {
- $order = CustomerOrder::find()->where(['number' => 1])->with('items')->one();
- $this->assertNotEmpty($order->items);
- }
-}
diff --git a/tests/unit/extensions/mongodb/CacheTest.php b/tests/unit/extensions/mongodb/CacheTest.php
deleted file mode 100644
index 3b30077..0000000
--- a/tests/unit/extensions/mongodb/CacheTest.php
+++ /dev/null
@@ -1,135 +0,0 @@
-dropCollection(static::$cacheCollection);
- parent::tearDown();
- }
-
- /**
- * Creates test cache instance.
- * @return Cache cache instance.
- */
- protected function createCache()
- {
- return Yii::createObject([
- 'class' => Cache::className(),
- 'db' => $this->getConnection(),
- 'cacheCollection' => static::$cacheCollection,
- 'gcProbability' => 0,
- ]);
- }
-
- // Tests:
-
- public function testSet()
- {
- $cache = $this->createCache();
-
- $key = 'test_key';
- $value = 'test_value';
- $this->assertTrue($cache->set($key, $value), 'Unable to set value!');
- $this->assertEquals($value, $cache->get($key), 'Unable to set value correctly!');
-
- $newValue = 'test_new_value';
- $this->assertTrue($cache->set($key, $newValue), 'Unable to update value!');
- $this->assertEquals($newValue, $cache->get($key), 'Unable to update value correctly!');
- }
-
- public function testAdd()
- {
- $cache = $this->createCache();
-
- $key = 'test_key';
- $value = 'test_value';
- $this->assertTrue($cache->add($key, $value), 'Unable to add value!');
- $this->assertEquals($value, $cache->get($key), 'Unable to add value correctly!');
-
- $newValue = 'test_new_value';
- $this->assertTrue($cache->add($key, $newValue), 'Unable to re-add value!');
- $this->assertEquals($value, $cache->get($key), 'Original value is lost!');
- }
-
- /**
- * @depends testSet
- */
- public function testDelete()
- {
- $cache = $this->createCache();
-
- $key = 'test_key';
- $value = 'test_value';
- $cache->set($key, $value);
-
- $this->assertTrue($cache->delete($key), 'Unable to delete key!');
- $this->assertEquals(false, $cache->get($key), 'Value is not deleted!');
- }
-
- /**
- * @depends testSet
- */
- public function testFlush()
- {
- $cache = $this->createCache();
-
- $cache->set('key1', 'value1');
- $cache->set('key2', 'value2');
-
- $this->assertTrue($cache->flush(), 'Unable to flush cache!');
-
- $collection = $cache->db->getCollection($cache->cacheCollection);
- $rows = $this->findAll($collection);
- $this->assertCount(0, $rows, 'Unable to flush records!');
- }
-
- /**
- * @depends testSet
- */
- public function testGc()
- {
- $cache = $this->createCache();
-
- $cache->set('key1', 'value1');
- $cache->set('key2', 'value2');
-
- $collection = $cache->db->getCollection($cache->cacheCollection);
-
- list($row) = $this->findAll($collection);
- $collection->update(['_id' => $row['_id']], ['expire' => time() - 10]);
-
- $cache->gc(true);
-
- $rows = $this->findAll($collection);
- $this->assertCount(1, $rows, 'Unable to collect garbage!');
- }
-
- /**
- * @depends testSet
- */
- public function testGetExpired()
- {
- $cache = $this->createCache();
-
- $key = 'test_key';
- $value = 'test_value';
- $cache->set($key, $value);
-
- $collection = $cache->db->getCollection($cache->cacheCollection);
- list($row) = $this->findAll($collection);
- $collection->update(['_id' => $row['_id']], ['expire' => time() - 10]);
-
- $this->assertEquals(false, $cache->get($key), 'Expired key value returned!');
- }
-}
diff --git a/tests/unit/extensions/mongodb/CollectionTest.php b/tests/unit/extensions/mongodb/CollectionTest.php
deleted file mode 100644
index f5d1034..0000000
--- a/tests/unit/extensions/mongodb/CollectionTest.php
+++ /dev/null
@@ -1,466 +0,0 @@
-dropCollection('customer');
- $this->dropCollection('mapReduceOut');
- parent::tearDown();
- }
-
- // Tests :
-
- public function testGetName()
- {
- $collectionName = 'customer';
- $collection = $this->getConnection()->getCollection($collectionName);
- $this->assertEquals($collectionName, $collection->getName());
- $this->assertEquals($this->mongoDbConfig['defaultDatabaseName'] . '.' . $collectionName, $collection->getFullName());
- }
-
- public function testFind()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $cursor = $collection->find();
- $this->assertTrue($cursor instanceof \MongoCursor);
- }
-
- public function testInsert()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->insert($data);
- $this->assertTrue($id instanceof \MongoId);
- $this->assertNotEmpty($id->__toString());
- }
-
- /**
- * @depends testInsert
- * @depends testFind
- */
- public function testFindAll()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->insert($data);
-
- $cursor = $collection->find();
- $rows = [];
- foreach ($cursor as $row) {
- $rows[] = $row;
- }
- $this->assertEquals(1, count($rows));
- $this->assertEquals($id, $rows[0]['_id']);
- }
-
- /**
- * @depends testFind
- */
- public function testBatchInsert()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [
- [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ],
- [
- 'name' => 'customer 2',
- 'address' => 'customer 2 address',
- ],
- ];
- $insertedRows = $collection->batchInsert($rows);
- $this->assertTrue($insertedRows[0]['_id'] instanceof \MongoId);
- $this->assertTrue($insertedRows[1]['_id'] instanceof \MongoId);
- $this->assertEquals(count($rows), $collection->find()->count());
- }
-
- public function testSave()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->save($data);
- $this->assertTrue($id instanceof \MongoId);
- $this->assertNotEmpty($id->__toString());
- }
-
- /**
- * @depends testSave
- */
- public function testUpdateBySave()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $newId = $collection->save($data);
-
- $updatedId = $collection->save($data);
- $this->assertEquals($newId, $updatedId, 'Unable to update data!');
-
- $data['_id'] = $newId->__toString();
- $updatedId = $collection->save($data);
- $this->assertEquals($newId, $updatedId, 'Unable to updated data by string id!');
- }
-
- /**
- * @depends testFindAll
- */
- public function testRemove()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->insert($data);
-
- $count = $collection->remove(['_id' => $id]);
- $this->assertEquals(1, $count);
-
- $rows = $this->findAll($collection);
- $this->assertEquals(0, count($rows));
- }
-
- /**
- * @depends testFindAll
- */
- public function testUpdate()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->insert($data);
-
- $newData = [
- 'name' => 'new name'
- ];
- $count = $collection->update(['_id' => $id], $newData);
- $this->assertEquals(1, $count);
-
- list($row) = $this->findAll($collection);
- $this->assertEquals($newData['name'], $row['name']);
- }
-
- /**
- * @depends testBatchInsert
- */
- public function testGroup()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [
- [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ],
- [
- 'name' => 'customer 2',
- 'address' => 'customer 2 address',
- ],
- ];
- $collection->batchInsert($rows);
-
- $keys = ['address' => 1];
- $initial = ['items' => []];
- $reduce = "function (obj, prev) { prev.items.push(obj.name); }";
- $result = $collection->group($keys, $initial, $reduce);
- $this->assertEquals(2, count($result));
- $this->assertNotEmpty($result[0]['address']);
- $this->assertNotEmpty($result[0]['items']);
- }
-
- public function testFindAndModify()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [
- [
- 'name' => 'customer 1',
- 'status' => 1,
- 'amount' => 100,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 1,
- 'amount' => 200,
- ],
- ];
- $collection->batchInsert($rows);
-
- // increment field
- $result = $collection->findAndModify(['name' => 'customer 1'], ['$inc' => ['status' => 1]]);
- $this->assertEquals('customer 1', $result['name']);
- $this->assertEquals(1, $result['status']);
- $newResult = $collection->findOne(['name' => 'customer 1']);
- $this->assertEquals(2, $newResult['status']);
-
- // $set and return modified document
- $result = $collection->findAndModify(
- ['name' => 'customer 2'],
- ['$set' => ['status' => 2]],
- [],
- ['new' => true]
- );
- $this->assertEquals('customer 2', $result['name']);
- $this->assertEquals(2, $result['status']);
-
- // Full update document
- $data = [
- 'name' => 'customer 3',
- 'city' => 'Minsk'
- ];
- $result = $collection->findAndModify(
- ['name' => 'customer 2'],
- $data,
- [],
- ['new' => true]
- );
- $this->assertEquals('customer 3', $result['name']);
- $this->assertEquals('Minsk', $result['city']);
- $this->assertTrue(!isset($result['status']));
-
- // Test exceptions
- $this->setExpectedException('\yii\mongodb\Exception');
- $collection->findAndModify(['name' => 'customer 1'], ['$wrongOperator' => ['status' => 1]]);
- }
-
- /**
- * @depends testBatchInsert
- */
- public function testMapReduce()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [
- [
- 'name' => 'customer 1',
- 'status' => 1,
- 'amount' => 100,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 1,
- 'amount' => 200,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 2,
- 'amount' => 400,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 3,
- 'amount' => 500,
- ],
- ];
- $collection->batchInsert($rows);
-
- $result = $collection->mapReduce(
- 'function () {emit(this.status, this.amount)}',
- 'function (key, values) {return Array.sum(values)}',
- 'mapReduceOut',
- ['status' => ['$lt' => 3]]
- );
- $this->assertEquals('mapReduceOut', $result);
-
- $outputCollection = $this->getConnection()->getCollection($result);
- $rows = $this->findAll($outputCollection);
- $expectedRows = [
- [
- '_id' => 1,
- 'value' => 300,
- ],
- [
- '_id' => 2,
- 'value' => 400,
- ],
- ];
- $this->assertEquals($expectedRows, $rows);
- }
-
- /**
- * @depends testMapReduce
- */
- public function testMapReduceInline()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [
- [
- 'name' => 'customer 1',
- 'status' => 1,
- 'amount' => 100,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 1,
- 'amount' => 200,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 2,
- 'amount' => 400,
- ],
- [
- 'name' => 'customer 2',
- 'status' => 3,
- 'amount' => 500,
- ],
- ];
- $collection->batchInsert($rows);
-
- $result = $collection->mapReduce(
- 'function () {emit(this.status, this.amount)}',
- 'function (key, values) {return Array.sum(values)}',
- ['inline' => true],
- ['status' => ['$lt' => 3]]
- );
- $expectedRows = [
- [
- '_id' => 1,
- 'value' => 300,
- ],
- [
- '_id' => 2,
- 'value' => 400,
- ],
- ];
- $this->assertEquals($expectedRows, $result);
- }
-
- public function testCreateIndex()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $columns = [
- 'name',
- 'status' => \MongoCollection::DESCENDING,
- ];
- $this->assertTrue($collection->createIndex($columns));
- $indexInfo = $collection->mongoCollection->getIndexInfo();
- $this->assertEquals(2, count($indexInfo));
- }
-
- /**
- * @depends testCreateIndex
- */
- public function testDropIndex()
- {
- $collection = $this->getConnection()->getCollection('customer');
-
- $collection->createIndex('name');
- $this->assertTrue($collection->dropIndex('name'));
- $indexInfo = $collection->mongoCollection->getIndexInfo();
- $this->assertEquals(1, count($indexInfo));
-
- $this->setExpectedException('\yii\mongodb\Exception');
- $collection->dropIndex('name');
- }
-
- /**
- * @depends testCreateIndex
- */
- public function testDropAllIndexes()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $collection->createIndex('name');
- $this->assertEquals(2, $collection->dropAllIndexes());
- $indexInfo = $collection->mongoCollection->getIndexInfo();
- $this->assertEquals(1, count($indexInfo));
- }
-
- /**
- * @depends testBatchInsert
- * @depends testCreateIndex
- */
- public function testFullTextSearch()
- {
- if (version_compare('2.4', $this->getServerVersion(), '>')) {
- $this->markTestSkipped("Mongo Server 2.4 required.");
- }
-
- $collection = $this->getConnection()->getCollection('customer');
-
- $rows = [
- [
- 'name' => 'customer 1',
- 'status' => 1,
- 'amount' => 100,
- ],
- [
- 'name' => 'some customer',
- 'status' => 1,
- 'amount' => 200,
- ],
- [
- 'name' => 'no search keyword',
- 'status' => 1,
- 'amount' => 200,
- ],
- ];
- $collection->batchInsert($rows);
- $collection->createIndex(['name' => 'text']);
-
- $result = $collection->fullTextSearch('customer');
- $this->assertNotEmpty($result);
- $this->assertCount(2, $result);
- }
-
- /**
- * @depends testInsert
- * @depends testFind
- */
- public function testFindByNotObjectId()
- {
- $collection = $this->getConnection()->getCollection('customer');
-
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- ];
- $id = $collection->insert($data);
-
- $cursor = $collection->find(['_id' => (string) $id]);
- $this->assertTrue($cursor instanceof \MongoCursor);
- $row = $cursor->getNext();
- $this->assertEquals($id, $row['_id']);
-
- $cursor = $collection->find(['_id' => 'fake']);
- $this->assertTrue($cursor instanceof \MongoCursor);
- $this->assertEquals(0, $cursor->count());
- }
-
- /**
- * @depends testInsert
- *
- * @see https://github.com/yiisoft/yii2/issues/2548
- */
- public function testInsertMongoBin()
- {
- $collection = $this->getConnection()->getCollection('customer');
-
- $fileName = realpath(__DIR__ . '/../../../../extensions/gii/assets/logo.png');
- $data = [
- 'name' => 'customer 1',
- 'address' => 'customer 1 address',
- 'binData' => new \MongoBinData(file_get_contents($fileName), 2),
- ];
- $id = $collection->insert($data);
- $this->assertTrue($id instanceof \MongoId);
- $this->assertNotEmpty($id->__toString());
- }
-}
diff --git a/tests/unit/extensions/mongodb/ConnectionTest.php b/tests/unit/extensions/mongodb/ConnectionTest.php
deleted file mode 100644
index b97c661..0000000
--- a/tests/unit/extensions/mongodb/ConnectionTest.php
+++ /dev/null
@@ -1,157 +0,0 @@
-getConnection(false);
- $params = $this->mongoDbConfig;
-
- $connection->open();
-
- $this->assertEquals($params['dsn'], $connection->dsn);
- $this->assertEquals($params['defaultDatabaseName'], $connection->defaultDatabaseName);
- $this->assertEquals($params['options'], $connection->options);
- }
-
- public function testOpenClose()
- {
- $connection = $this->getConnection(false, false);
-
- $this->assertFalse($connection->isActive);
- $this->assertEquals(null, $connection->mongoClient);
-
- $connection->open();
- $this->assertTrue($connection->isActive);
- $this->assertTrue(is_object($connection->mongoClient));
-
- $connection->close();
- $this->assertFalse($connection->isActive);
- $this->assertEquals(null, $connection->mongoClient);
-
- $connection = new Connection;
- $connection->dsn = 'unknown::memory:';
- $this->setExpectedException('yii\mongodb\Exception');
- $connection->open();
- }
-
- public function testGetDatabase()
- {
- $connection = $this->getConnection();
-
- $database = $connection->getDatabase($connection->defaultDatabaseName);
- $this->assertTrue($database instanceof Database);
- $this->assertTrue($database->mongoDb instanceof \MongoDB);
-
- $database2 = $connection->getDatabase($connection->defaultDatabaseName);
- $this->assertTrue($database === $database2);
-
- $databaseRefreshed = $connection->getDatabase($connection->defaultDatabaseName, true);
- $this->assertFalse($database === $databaseRefreshed);
- }
-
- /**
- * Data provider for [[testFetchDefaultDatabaseName()]]
- * @return array test data
- */
- public function dataProviderFetchDefaultDatabaseName()
- {
- return [
- [
- 'mongodb://travis:test@localhost:27017/dbname',
- 'dbname',
- ],
- [
- 'mongodb://travis:test@localhost:27017/dbname?replicaSet=test&connectTimeoutMS=300000',
- 'dbname',
- ],
- ];
- }
-
- /**
- * @dataProvider dataProviderFetchDefaultDatabaseName
- *
- * @param string $dsn
- * @param string $databaseName
- */
- public function testFetchDefaultDatabaseName($dsn, $databaseName)
- {
- $connection = new Connection();
- $connection->dsn = $dsn;
-
- $reflection = new \ReflectionObject($connection);
- $method = $reflection->getMethod('fetchDefaultDatabaseName');
- $method->setAccessible(true);
- $method->invoke($connection);
-
- $this->assertEquals($databaseName, $connection->defaultDatabaseName);
- }
-
- /**
- * @depends testGetDatabase
- * @depends testFetchDefaultDatabaseName
- */
- public function testGetDefaultDatabase()
- {
- $connection = new Connection();
- $connection->dsn = $this->mongoDbConfig['dsn'];
- $connection->defaultDatabaseName = $this->mongoDbConfig['defaultDatabaseName'];
- $database = $connection->getDatabase();
- $this->assertTrue($database instanceof Database, 'Unable to get default database!');
-
- $connection = new Connection();
- $connection->dsn = $this->mongoDbConfig['dsn'];
- $connection->options = ['db' => $this->mongoDbConfig['defaultDatabaseName']];
- $database = $connection->getDatabase();
- $this->assertTrue($database instanceof Database, 'Unable to determine default database from options!');
-
- $connection = new Connection();
- $connection->dsn = $this->mongoDbConfig['dsn'] . '/' . $this->mongoDbConfig['defaultDatabaseName'];
- $database = $connection->getDatabase();
- $this->assertTrue($database instanceof Database, 'Unable to determine default database from dsn!');
- }
-
- /**
- * @depends testGetDefaultDatabase
- */
- public function testGetCollection()
- {
- $connection = $this->getConnection();
-
- $collection = $connection->getCollection('customer');
- $this->assertTrue($collection instanceof Collection);
-
- $collection2 = $connection->getCollection('customer');
- $this->assertTrue($collection === $collection2);
-
- $collection2 = $connection->getCollection('customer', true);
- $this->assertFalse($collection === $collection2);
- }
-
- /**
- * @depends testGetDefaultDatabase
- */
- public function testGetFileCollection()
- {
- $connection = $this->getConnection();
-
- $collection = $connection->getFileCollection('testfs');
- $this->assertTrue($collection instanceof FileCollection);
-
- $collection2 = $connection->getFileCollection('testfs');
- $this->assertTrue($collection === $collection2);
-
- $collection2 = $connection->getFileCollection('testfs', true);
- $this->assertFalse($collection === $collection2);
- }
-}
diff --git a/tests/unit/extensions/mongodb/DatabaseTest.php b/tests/unit/extensions/mongodb/DatabaseTest.php
deleted file mode 100644
index f4bc542..0000000
--- a/tests/unit/extensions/mongodb/DatabaseTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-dropCollection('customer');
- $this->dropFileCollection('testfs');
- parent::tearDown();
- }
-
- // Tests :
-
- public function testGetCollection()
- {
- $database = $connection = $this->getConnection()->getDatabase();
-
- $collection = $database->getCollection('customer');
- $this->assertTrue($collection instanceof Collection);
- $this->assertTrue($collection->mongoCollection instanceof \MongoCollection);
-
- $collection2 = $database->getCollection('customer');
- $this->assertTrue($collection === $collection2);
-
- $collectionRefreshed = $database->getCollection('customer', true);
- $this->assertFalse($collection === $collectionRefreshed);
- }
-
- public function testGetFileCollection()
- {
- $database = $connection = $this->getConnection()->getDatabase();
-
- $collection = $database->getFileCollection('testfs');
- $this->assertTrue($collection instanceof FileCollection);
- $this->assertTrue($collection->mongoCollection instanceof \MongoGridFS);
-
- $collection2 = $database->getFileCollection('testfs');
- $this->assertTrue($collection === $collection2);
-
- $collectionRefreshed = $database->getFileCollection('testfs', true);
- $this->assertFalse($collection === $collectionRefreshed);
- }
-
- public function testExecuteCommand()
- {
- $database = $connection = $this->getConnection()->getDatabase();
-
- $result = $database->executeCommand([
- 'distinct' => 'customer',
- 'key' => 'name'
- ]);
- $this->assertTrue(array_key_exists('ok', $result));
- $this->assertTrue(array_key_exists('values', $result));
- }
-
- public function testCreateCollection()
- {
- $database = $connection = $this->getConnection()->getDatabase();
- $collection = $database->createCollection('customer');
- $this->assertTrue($collection instanceof \MongoCollection);
- }
-}
diff --git a/tests/unit/extensions/mongodb/MongoDbTestCase.php b/tests/unit/extensions/mongodb/MongoDbTestCase.php
deleted file mode 100644
index 43bd22e..0000000
--- a/tests/unit/extensions/mongodb/MongoDbTestCase.php
+++ /dev/null
@@ -1,151 +0,0 @@
- 'mongodb://localhost:27017',
- 'defaultDatabaseName' => 'yii2test',
- 'options' => [],
- ];
- /**
- * @var Connection Mongo connection instance.
- */
- protected $mongodb;
-
- public static function setUpBeforeClass()
- {
- static::loadClassMap();
- }
-
- protected function setUp()
- {
- parent::setUp();
- if (!extension_loaded('mongo')) {
- $this->markTestSkipped('mongo extension required.');
- }
- $config = self::getParam('mongodb');
- if (!empty($config)) {
- $this->mongoDbConfig = $config;
- }
- $this->mockApplication();
- static::loadClassMap();
- }
-
- protected function tearDown()
- {
- if ($this->mongodb) {
- $this->mongodb->close();
- }
- $this->destroyApplication();
- }
-
- /**
- * Adds sphinx extension files to [[Yii::$classPath]],
- * avoiding the necessity of usage Composer autoloader.
- */
- protected static function loadClassMap()
- {
- $baseNameSpace = 'yii/mongodb';
- $basePath = realpath(__DIR__. '/../../../../extensions/mongodb');
-
- $alias = '@' . $baseNameSpace;
- if (!in_array($alias, Yii::$aliases)) {
- Yii::setAlias($alias, $basePath);
- }
- }
-
- /**
- * @param boolean $reset whether to clean up the test database
- * @param boolean $open whether to open test database
- * @return \yii\mongodb\Connection
- */
- public function getConnection($reset = false, $open = true)
- {
- if (!$reset && $this->mongodb) {
- return $this->mongodb;
- }
- $db = new Connection;
- $db->dsn = $this->mongoDbConfig['dsn'];
- $db->defaultDatabaseName = $this->mongoDbConfig['defaultDatabaseName'];
- if (isset($this->mongoDbConfig['options'])) {
- $db->options = $this->mongoDbConfig['options'];
- }
- if ($open) {
- $db->open();
- }
- $this->mongodb = $db;
-
- return $db;
- }
-
- /**
- * Drops the specified collection.
- * @param string $name collection name.
- */
- protected function dropCollection($name)
- {
- if ($this->mongodb) {
- try {
- $this->mongodb->getCollection($name)->drop();
- } catch (Exception $e) {
- // shut down exception
- }
- }
- }
-
- /**
- * Drops the specified file collection.
- * @param string $name file collection name.
- */
- protected function dropFileCollection($name = 'fs')
- {
- if ($this->mongodb) {
- try {
- $this->mongodb->getFileCollection($name)->drop();
- } catch (Exception $e) {
- // shut down exception
- }
- }
- }
-
- /**
- * Finds all records in collection.
- * @param \yii\mongodb\Collection $collection
- * @param array $condition
- * @param array $fields
- * @return array rows
- */
- protected function findAll($collection, $condition = [], $fields = [])
- {
- $cursor = $collection->find($condition, $fields);
- $result = [];
- foreach ($cursor as $data) {
- $result[] = $data;
- }
-
- return $result;
- }
-
- /**
- * Returns the Mongo server version.
- * @return string Mongo server version.
- */
- protected function getServerVersion()
- {
- $connection = $this->getConnection();
- $buildInfo = $connection->getDatabase()->executeCommand(['buildinfo' => true]);
-
- return $buildInfo['version'];
- }
-}
diff --git a/tests/unit/extensions/mongodb/QueryRunTest.php b/tests/unit/extensions/mongodb/QueryRunTest.php
deleted file mode 100644
index 0f7665d..0000000
--- a/tests/unit/extensions/mongodb/QueryRunTest.php
+++ /dev/null
@@ -1,265 +0,0 @@
-setUpTestRows();
- }
-
- protected function tearDown()
- {
- $this->dropCollection('customer');
- parent::tearDown();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getCollection('customer');
- $rows = [];
- for ($i = 1; $i <= 10; $i++) {
- $rows[] = [
- 'name' => 'name' . $i,
- 'address' => 'address' . $i,
- 'avatar' => [
- 'width' => 50 + $i,
- 'height' => 100 + $i,
- 'url' => 'http://some.url/' . $i,
- ],
- ];
- }
- $collection->batchInsert($rows);
- }
-
- // Tests :
-
- public function testAll()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')->all($connection);
- $this->assertEquals(10, count($rows));
- }
-
- public function testDirectMatch()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where(['name' => 'name1'])
- ->all($connection);
- $this->assertEquals(1, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- }
-
- public function testIndexBy()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->indexBy('name')
- ->all($connection);
- $this->assertEquals(10, count($rows));
- $this->assertNotEmpty($rows['name1']);
- }
-
- public function testInCondition()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where([
- 'name' => ['name1', 'name5']
- ])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('name5', $rows[1]['name']);
- }
-
- public function testOrCondition()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where(['name' => 'name1'])
- ->orWhere(['address' => 'address5'])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('address5', $rows[1]['address']);
- }
-
- public function testCombinedInAndCondition()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where([
- 'name' => ['name1', 'name5']
- ])
- ->andWhere(['name' => 'name1'])
- ->all($connection);
- $this->assertEquals(1, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- }
-
- public function testCombinedInLikeAndCondition()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where([
- 'name' => ['name1', 'name5', 'name10']
- ])
- ->andWhere(['LIKE', 'name', 'me1'])
- ->andWhere(['name' => 'name10'])
- ->all($connection);
- $this->assertEquals(1, count($rows));
- $this->assertEquals('name10', $rows[0]['name']);
- }
-
- public function testNestedCombinedInAndCondition()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where([
- 'and',
- ['name' => ['name1', 'name2', 'name3']],
- ['name' => 'name1']
- ])
- ->orWhere([
- 'and',
- ['name' => ['name4', 'name5', 'name6']],
- ['name' => 'name6']
- ])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('name6', $rows[1]['name']);
- }
-
- public function testOrder()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('customer')
- ->orderBy(['name' => SORT_DESC])
- ->all($connection);
- $this->assertEquals('name9', $rows[0]['name']);
-
- $query = new Query;
- $rows = $query->from('customer')
- ->orderBy(['avatar.height' => SORT_DESC])
- ->all($connection);
- $this->assertEquals('name10', $rows[0]['name']);
- }
-
- public function testMatchPlainId()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $row = $query->from('customer')->one($connection);
- $query = new Query;
- $rows = $query->from('customer')
- ->where(['_id' => $row['_id']->__toString()])
- ->all($connection);
- $this->assertEquals(1, count($rows));
- }
-
- public function testRegex()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- ->where(['REGEX', 'name', '/me1/'])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('name10', $rows[1]['name']);
- }
-
- public function testLike()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('customer')
- ->where(['LIKE', 'name', 'me1'])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('name10', $rows[1]['name']);
-
- $query = new Query;
- $rowsUppercase = $query->from('customer')
- ->where(['LIKE', 'name', 'ME1'])
- ->all($connection);
- $this->assertEquals($rows, $rowsUppercase);
- }
-
- public function testModify()
- {
- $connection = $this->getConnection();
-
- $query = new Query();
-
- $searchName = 'name5';
- $newName = 'new name';
- $row = $query->from('customer')
- ->where(['name' => $searchName])
- ->modify(['$set' => ['name' => $newName]], ['new' => false], $connection);
- $this->assertEquals($searchName, $row['name']);
-
- $searchName = 'name7';
- $newName = 'new name';
- $row = $query->from('customer')
- ->where(['name' => $searchName])
- ->modify(['$set' => ['name' => $newName]], ['new' => true], $connection);
- $this->assertEquals($newName, $row['name']);
-
- $row = $query->from('customer')
- ->where(['name' => 'not existing name'])
- ->modify(['$set' => ['name' => 'new name']], ['new' => false], $connection);
- $this->assertNull($row);
- }
-
- /**
- * @see https://github.com/yiisoft/yii2/issues/4879
- *
- * @depends testInCondition
- */
- public function testInConditionIgnoreKeys()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('customer')
- /*->where([
- 'name' => [
- 0 => 'name1',
- 15 => 'name5'
- ]
- ])*/
- ->where(['in', 'name', [
- 10 => 'name1',
- 15 => 'name5'
- ]])
- ->all($connection);
- $this->assertEquals(2, count($rows));
- $this->assertEquals('name1', $rows[0]['name']);
- $this->assertEquals('name5', $rows[1]['name']);
- }
-}
diff --git a/tests/unit/extensions/mongodb/QueryTest.php b/tests/unit/extensions/mongodb/QueryTest.php
deleted file mode 100644
index b628cfc..0000000
--- a/tests/unit/extensions/mongodb/QueryTest.php
+++ /dev/null
@@ -1,115 +0,0 @@
-select($select);
- $this->assertEquals($select, $query->select);
-
- $query = new Query;
- $select = ['name', 'something'];
- $query->select($select);
- $this->assertEquals($select, $query->select);
- }
-
- public function testFrom()
- {
- $query = new Query;
- $from = 'customer';
- $query->from($from);
- $this->assertEquals($from, $query->from);
-
- $query = new Query;
- $from = ['', 'customer'];
- $query->from($from);
- $this->assertEquals($from, $query->from);
- }
-
- public function testWhere()
- {
- $query = new Query;
- $query->where(['name' => 'name1']);
- $this->assertEquals(['name' => 'name1'], $query->where);
-
- $query->andWhere(['address' => 'address1']);
- $this->assertEquals(
- [
- 'and',
- ['name' => 'name1'],
- ['address' => 'address1']
- ],
- $query->where
- );
-
- $query->orWhere(['name' => 'name2']);
- $this->assertEquals(
- [
- 'or',
- [
- 'and',
- ['name' => 'name1'],
- ['address' => 'address1']
- ],
- ['name' => 'name2']
-
- ],
- $query->where
- );
- }
-
- public function testFilterWhere()
- {
- // should work with hash format
- $query = new Query;
- $query->filterWhere([
- 'id' => 0,
- 'title' => ' ',
- 'author_ids' => [],
- ]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->andFilterWhere(['status' => null]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->orFilterWhere(['name' => '']);
- $this->assertEquals(['id' => 0], $query->where);
- }
-
- public function testOrder()
- {
- $query = new Query;
- $query->orderBy('team');
- $this->assertEquals(['team' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('company');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('age');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy(['age' => SORT_DESC]);
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_DESC], $query->orderBy);
-
- $query->addOrderBy('age ASC, company DESC');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_DESC, 'age' => SORT_ASC], $query->orderBy);
- }
-
- public function testLimitOffset()
- {
- $query = new Query;
- $query->limit(10)->offset(5);
- $this->assertEquals(10, $query->limit);
- $this->assertEquals(5, $query->offset);
- }
-}
diff --git a/tests/unit/extensions/mongodb/SessionTest.php b/tests/unit/extensions/mongodb/SessionTest.php
deleted file mode 100644
index ba47b0b..0000000
--- a/tests/unit/extensions/mongodb/SessionTest.php
+++ /dev/null
@@ -1,140 +0,0 @@
-dropCollection(static::$sessionCollection);
- parent::tearDown();
- }
-
- /**
- * Creates test session instance.
- * @return Session session instance.
- */
- protected function createSession()
- {
- return Yii::createObject([
- 'class' => Session::className(),
- 'db' => $this->getConnection(),
- 'sessionCollection' => static::$sessionCollection,
- ]);
- }
-
- // Tests:
-
- public function testWriteSession()
- {
- $session = $this->createSession();
-
- $id = uniqid();
- $data = [
- 'name' => 'value'
- ];
- $dataSerialized = serialize($data);
- $this->assertTrue($session->writeSession($id, $dataSerialized), 'Unable to write session!');
-
- $collection = $session->db->getCollection($session->sessionCollection);
- $rows = $this->findAll($collection);
- $this->assertCount(1, $rows, 'No session record!');
-
- $row = array_shift($rows);
- $this->assertEquals($id, $row['id'], 'Wrong session id!');
- $this->assertEquals($dataSerialized, $row['data'], 'Wrong session data!');
- $this->assertTrue($row['expire'] > time(), 'Wrong session expire!');
-
- $newData = [
- 'name' => 'new value'
- ];
- $newDataSerialized = serialize($newData);
- $this->assertTrue($session->writeSession($id, $newDataSerialized), 'Unable to update session!');
-
- $rows = $this->findAll($collection);
- $this->assertCount(1, $rows, 'Wrong session records after update!');
- $newRow = array_shift($rows);
- $this->assertEquals($id, $newRow['id'], 'Wrong session id after update!');
- $this->assertEquals($newDataSerialized, $newRow['data'], 'Wrong session data after update!');
- $this->assertTrue($newRow['expire'] >= $row['expire'], 'Wrong session expire after update!');
- }
-
- /**
- * @depends testWriteSession
- */
- public function testDestroySession()
- {
- $session = $this->createSession();
-
- $id = uniqid();
- $data = [
- 'name' => 'value'
- ];
- $dataSerialized = serialize($data);
- $session->writeSession($id, $dataSerialized);
-
- $this->assertTrue($session->destroySession($id), 'Unable to destroy session!');
-
- $collection = $session->db->getCollection($session->sessionCollection);
- $rows = $this->findAll($collection);
- $this->assertEmpty($rows, 'Session record not deleted!');
- }
-
- /**
- * @depends testWriteSession
- */
- public function testReadSession()
- {
- $session = $this->createSession();
-
- $id = uniqid();
- $data = [
- 'name' => 'value'
- ];
- $dataSerialized = serialize($data);
- $session->writeSession($id, $dataSerialized);
-
- $sessionData = $session->readSession($id);
- $this->assertEquals($dataSerialized, $sessionData, 'Unable to read session!');
-
- $collection = $session->db->getCollection($session->sessionCollection);
- list($row) = $this->findAll($collection);
- $newRow = $row;
- $newRow['expire'] = time() - 1;
- unset($newRow['_id']);
- $collection->update(['_id' => $row['_id']], $newRow);
-
- $sessionData = $session->readSession($id);
- $this->assertEquals('', $sessionData, 'Expired session read!');
- }
-
- public function testGcSession()
- {
- $session = $this->createSession();
- $collection = $session->db->getCollection($session->sessionCollection);
- $collection->batchInsert([
- [
- 'id' => uniqid(),
- 'expire' => time() + 10,
- 'data' => 'actual',
- ],
- [
- 'id' => uniqid(),
- 'expire' => time() - 10,
- 'data' => 'expired',
- ],
- ]);
- $this->assertTrue($session->gcSession(10), 'Unable to collection garbage session!');
-
- $rows = $this->findAll($collection);
- $this->assertCount(1, $rows, 'Wrong records count!');
- }
-}
diff --git a/tests/unit/extensions/mongodb/console/controllers/EchoMigrateController.php b/tests/unit/extensions/mongodb/console/controllers/EchoMigrateController.php
deleted file mode 100644
index 3d5cc0c..0000000
--- a/tests/unit/extensions/mongodb/console/controllers/EchoMigrateController.php
+++ /dev/null
@@ -1,18 +0,0 @@
-migrateControllerClass = EchoMigrateController::className();
- $this->migrationBaseClass = Migration::className();
-
- parent::setUp();
-
- $this->setUpMigrationPath();
- Yii::$app->setComponents(['mongodb' => $this->getConnection()]);
- }
-
- public function tearDown()
- {
- parent::tearDown();
- if (extension_loaded('mongo')) {
- try {
- $this->getConnection()->getCollection('migration')->drop();
- } catch (Exception $e) {
- // shutdown exception
- }
- }
- $this->tearDownMigrationPath();
- }
-
- /**
- * @return array applied migration entries
- */
- protected function getMigrationHistory()
- {
- $query = new Query();
- return $query->from('migration')->all();
- }
-}
\ No newline at end of file
diff --git a/tests/unit/extensions/mongodb/file/ActiveRecordTest.php b/tests/unit/extensions/mongodb/file/ActiveRecordTest.php
deleted file mode 100644
index 9deb993..0000000
--- a/tests/unit/extensions/mongodb/file/ActiveRecordTest.php
+++ /dev/null
@@ -1,324 +0,0 @@
-getConnection();
- $this->setUpTestRows();
- $filePath = $this->getTestFilePath();
- if (!file_exists($filePath)) {
- FileHelper::createDirectory($filePath);
- }
- }
-
- protected function tearDown()
- {
- $filePath = $this->getTestFilePath();
- if (file_exists($filePath)) {
- FileHelper::removeDirectory($filePath);
- }
- $this->dropFileCollection(CustomerFile::collectionName());
- parent::tearDown();
- }
-
- /**
- * @return string test file path.
- */
- protected function getTestFilePath()
- {
- return Yii::getAlias('@yiiunit/runtime') . DIRECTORY_SEPARATOR . basename(get_class($this)) . '_' . getmypid();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getFileCollection(CustomerFile::collectionName());
- $rows = [];
- for ($i = 1; $i <= 10; $i++) {
- $record = [
- 'tag' => 'tag' . $i,
- 'status' => $i,
- ];
- $content = 'content' . $i;
- $record['_id'] = $collection->insertFileContent($content, $record);
- $record['content'] = $content;
- $rows[] = $record;
- }
- $this->testRows = $rows;
- }
-
- // Tests :
-
- public function testFind()
- {
- // find one
- $result = CustomerFile::find();
- $this->assertTrue($result instanceof ActiveQuery);
- $customer = $result->one();
- $this->assertTrue($customer instanceof CustomerFile);
-
- // find all
- $customers = CustomerFile::find()->all();
- $this->assertEquals(10, count($customers));
- $this->assertTrue($customers[0] instanceof CustomerFile);
- $this->assertTrue($customers[1] instanceof CustomerFile);
-
- // find by _id
- $testId = $this->testRows[0]['_id'];
- $customer = CustomerFile::findOne($testId);
- $this->assertTrue($customer instanceof CustomerFile);
- $this->assertEquals($testId, $customer->_id);
-
- // find by column values
- $customer = CustomerFile::findOne(['tag' => 'tag5']);
- $this->assertTrue($customer instanceof CustomerFile);
- $this->assertEquals($this->testRows[4]['_id'], $customer->_id);
- $this->assertEquals('tag5', $customer->tag);
- $customer = CustomerFile::findOne(['tag' => 'unexisting tag']);
- $this->assertNull($customer);
-
- // find by attributes
- $customer = CustomerFile::find()->where(['status' => 4])->one();
- $this->assertTrue($customer instanceof CustomerFile);
- $this->assertEquals(4, $customer->status);
-
- // find count, sum, average, min, max, distinct
- $this->assertEquals(10, CustomerFile::find()->count());
- $this->assertEquals(1, CustomerFile::find()->where(['status' => 2])->count());
- $this->assertEquals((1+10)/2*10, CustomerFile::find()->sum('status'));
- $this->assertEquals((1+10)/2, CustomerFile::find()->average('status'));
- $this->assertEquals(1, CustomerFile::find()->min('status'));
- $this->assertEquals(10, CustomerFile::find()->max('status'));
- $this->assertEquals(range(1, 10), CustomerFile::find()->distinct('status'));
-
- // scope
- $this->assertEquals(1, CustomerFile::find()->activeOnly()->count());
-
- // asArray
- $testRow = $this->testRows[2];
- $customer = CustomerFile::find()->where(['_id' => $testRow['_id']])->asArray()->one();
- $this->assertEquals($testRow['_id'], $customer['_id']);
- $this->assertEquals($testRow['tag'], $customer['tag']);
- $this->assertEquals($testRow['status'], $customer['status']);
-
- // indexBy
- $customers = CustomerFile::find()->indexBy('tag')->all();
- $this->assertTrue($customers['tag1'] instanceof CustomerFile);
- $this->assertTrue($customers['tag2'] instanceof CustomerFile);
-
- // indexBy callable
- $customers = CustomerFile::find()->indexBy(function ($customer) {
- return $customer->status . '-' . $customer->status;
- })->all();
- $this->assertTrue($customers['1-1'] instanceof CustomerFile);
- $this->assertTrue($customers['2-2'] instanceof CustomerFile);
- }
-
- public function testInsert()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
-
- $this->assertTrue($record->isNewRecord);
-
- $record->save();
-
- $this->assertTrue($record->_id instanceof \MongoId);
- $this->assertFalse($record->isNewRecord);
-
- $fileContent = $record->getFileContent();
- $this->assertEmpty($fileContent);
- }
-
- /**
- * @depends testInsert
- */
- public function testInsertFile()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
-
- $fileName = __FILE__;
- $record->setAttribute('file', $fileName);
-
- $record->save();
-
- $this->assertTrue($record->_id instanceof \MongoId);
- $this->assertFalse($record->isNewRecord);
-
- $fileContent = $record->getFileContent();
- $this->assertEquals(file_get_contents($fileName), $fileContent);
- }
-
- /**
- * @depends testInsert
- */
- public function testInsertFileContent()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
-
- $newFileContent = 'Test new file content';
- $record->setAttribute('newFileContent', $newFileContent);
-
- $record->save();
-
- $this->assertTrue($record->_id instanceof \MongoId);
- $this->assertFalse($record->isNewRecord);
-
- $fileContent = $record->getFileContent();
- $this->assertEquals($newFileContent, $fileContent);
- }
-
- /**
- * @depends testInsert
- */
- public function testUpdate()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
- $record->save();
-
- // save
- $record = CustomerFile::findOne($record->_id);
- $this->assertTrue($record instanceof CustomerFile);
- $this->assertEquals(7, $record->status);
- $this->assertFalse($record->isNewRecord);
-
- $record->status = 9;
- $record->save();
- $this->assertEquals(9, $record->status);
- $this->assertFalse($record->isNewRecord);
- $record2 = CustomerFile::findOne($record->_id);
- $this->assertEquals(9, $record2->status);
-
- // updateAll
- $pk = ['_id' => $record->_id];
- $ret = CustomerFile::updateAll(['status' => 55], $pk);
- $this->assertEquals(1, $ret);
- $record = CustomerFile::findOne($pk);
- $this->assertEquals(55, $record->status);
- }
-
- /**
- * @depends testUpdate
- * @depends testInsertFileContent
- */
- public function testUpdateFile()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
- $newFileContent = 'Test new file content';
- $record->setAttribute('newFileContent', $newFileContent);
- $record->save();
-
- $updateFileName = __FILE__;
- $record = CustomerFile::findOne($record->_id);
- $record->setAttribute('file', $updateFileName);
- $record->status = 55;
- $record->save();
- $this->assertEquals(file_get_contents($updateFileName), $record->getFileContent());
-
- $record2 = CustomerFile::findOne($record->_id);
- $this->assertEquals($record->status, $record2->status);
- $this->assertEquals(file_get_contents($updateFileName), $record2->getFileContent());
- $this->assertEquals($record->tag, $record2->tag);
- }
-
- /**
- * @depends testUpdate
- * @depends testInsertFileContent
- */
- public function testUpdateFileContent()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
- $newFileContent = 'Test new file content';
- $record->setAttribute('newFileContent', $newFileContent);
- $record->save();
-
- $updateFileContent = 'New updated file content';
- $record = CustomerFile::findOne($record->_id);
- $record->setAttribute('newFileContent', $updateFileContent);
- $record->status = 55;
- $record->save();
- $this->assertEquals($updateFileContent, $record->getFileContent());
-
- $record2 = CustomerFile::findOne($record->_id);
- $this->assertEquals($record->status, $record2->status);
- $this->assertEquals($updateFileContent, $record2->getFileContent());
- }
-
- /**
- * @depends testInsertFileContent
- */
- public function testWriteFile()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
- $newFileContent = 'Test new file content';
- $record->setAttribute('newFileContent', $newFileContent);
- $record->save();
-
- $outputFileName = $this->getTestFilePath() . DIRECTORY_SEPARATOR . 'out.txt';
- $this->assertTrue($record->writeFile($outputFileName));
- $this->assertEquals($newFileContent, file_get_contents($outputFileName));
-
- $record2 = CustomerFile::findOne($record->_id);
- $outputFileName = $this->getTestFilePath() . DIRECTORY_SEPARATOR . 'out_refreshed.txt';
- $this->assertTrue($record2->writeFile($outputFileName));
- $this->assertEquals($newFileContent, file_get_contents($outputFileName));
- }
-
- /**
- * @depends testInsertFileContent
- */
- public function testGetFileResource()
- {
- $record = new CustomerFile;
- $record->tag = 'new new';
- $record->status = 7;
- $newFileContent = 'Test new file content';
- $record->setAttribute('newFileContent', $newFileContent);
- $record->save();
-
- $fileResource = $record->getFileResource();
- $contents = stream_get_contents($fileResource);
- fclose($fileResource);
- $this->assertEquals($newFileContent, $contents);
-
- $record2 = CustomerFile::findOne($record->_id);
- $fileResource = $record2->getFileResource();
- $contents = stream_get_contents($fileResource);
- fclose($fileResource);
- $this->assertEquals($newFileContent, $contents);
- }
-}
diff --git a/tests/unit/extensions/mongodb/file/CollectionTest.php b/tests/unit/extensions/mongodb/file/CollectionTest.php
deleted file mode 100644
index c73833c..0000000
--- a/tests/unit/extensions/mongodb/file/CollectionTest.php
+++ /dev/null
@@ -1,98 +0,0 @@
-dropFileCollection('fs');
- parent::tearDown();
- }
-
- // Tests :
-
- public function testGetChunkCollection()
- {
- $collection = $this->getConnection()->getFileCollection();
- $chunkCollection = $collection->getChunkCollection();
- $this->assertTrue($chunkCollection instanceof \yii\mongodb\Collection);
- $this->assertTrue($chunkCollection->mongoCollection instanceof \MongoCollection);
- }
-
- public function testFind()
- {
- $collection = $this->getConnection()->getFileCollection();
- $cursor = $collection->find();
- $this->assertTrue($cursor instanceof \MongoGridFSCursor);
- }
-
- public function testInsertFile()
- {
- $collection = $this->getConnection()->getFileCollection();
-
- $filename = __FILE__;
- $id = $collection->insertFile($filename);
- $this->assertTrue($id instanceof \MongoId);
-
- $files = $this->findAll($collection);
- $this->assertEquals(1, count($files));
-
- /* @var $file \MongoGridFSFile */
- $file = $files[0];
- $this->assertEquals($filename, $file->getFilename());
- $this->assertEquals(file_get_contents($filename), $file->getBytes());
- }
-
- public function testInsertFileContent()
- {
- $collection = $this->getConnection()->getFileCollection();
-
- $bytes = 'Test file content';
- $id = $collection->insertFileContent($bytes);
- $this->assertTrue($id instanceof \MongoId);
-
- $files = $this->findAll($collection);
- $this->assertEquals(1, count($files));
-
- /* @var $file \MongoGridFSFile */
- $file = $files[0];
- $this->assertEquals($bytes, $file->getBytes());
- }
-
- /**
- * @depends testInsertFileContent
- */
- public function testGet()
- {
- $collection = $this->getConnection()->getFileCollection();
-
- $bytes = 'Test file content';
- $id = $collection->insertFileContent($bytes);
-
- $file = $collection->get($id);
- $this->assertTrue($file instanceof \MongoGridFSFile);
- $this->assertEquals($bytes, $file->getBytes());
- }
-
- /**
- * @depends testGet
- */
- public function testDelete()
- {
- $collection = $this->getConnection()->getFileCollection();
-
- $bytes = 'Test file content';
- $id = $collection->insertFileContent($bytes);
-
- $this->assertTrue($collection->delete($id));
-
- $file = $collection->get($id);
- $this->assertNull($file);
- }
-}
diff --git a/tests/unit/extensions/mongodb/file/QueryTest.php b/tests/unit/extensions/mongodb/file/QueryTest.php
deleted file mode 100644
index 839dfc2..0000000
--- a/tests/unit/extensions/mongodb/file/QueryTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-setUpTestRows();
- }
-
- protected function tearDown()
- {
- $this->dropFileCollection();
- parent::tearDown();
- }
-
- /**
- * Sets up test rows.
- */
- protected function setUpTestRows()
- {
- $collection = $this->getConnection()->getFileCollection();
- for ($i = 1; $i <= 10; $i++) {
- $collection->insertFileContent('content' . $i, [
- 'filename' => 'name' . $i,
- 'file_index' => $i,
- ]);
- }
- }
-
- // Tests :
-
- public function testAll()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('fs')->all($connection);
- $this->assertEquals(10, count($rows));
- }
-
- public function testOne()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $row = $query->from('fs')->one($connection);
- $this->assertTrue(is_array($row));
- $this->assertTrue($row['file'] instanceof \MongoGridFSFile);
- }
-
- public function testDirectMatch()
- {
- $connection = $this->getConnection();
- $query = new Query;
- $rows = $query->from('fs')
- ->where(['file_index' => 5])
- ->all($connection);
- $this->assertEquals(1, count($rows));
- /* @var $file \MongoGridFSFile */
- $file = $rows[0];
- $this->assertEquals('name5', $file['filename']);
- }
-}
diff --git a/tests/unit/extensions/redis/ActiveRecordTest.php b/tests/unit/extensions/redis/ActiveRecordTest.php
deleted file mode 100644
index 0bc4dd8..0000000
--- a/tests/unit/extensions/redis/ActiveRecordTest.php
+++ /dev/null
@@ -1,370 +0,0 @@
-getConnection();
-
- $customer = new Customer();
- $customer->setAttributes(['email' => 'user1@example.com', 'name' => 'user1', 'address' => 'address1', 'status' => 1, 'profile_id' => 1], false);
- $customer->save(false);
- $customer = new Customer();
- $customer->setAttributes(['email' => 'user2@example.com', 'name' => 'user2', 'address' => 'address2', 'status' => 1, 'profile_id' => null], false);
- $customer->save(false);
- $customer = new Customer();
- $customer->setAttributes(['email' => 'user3@example.com', 'name' => 'user3', 'address' => 'address3', 'status' => 2, 'profile_id' => 2], false);
- $customer->save(false);
-
-// INSERT INTO category (name) VALUES ('Books');
-// INSERT INTO category (name) VALUES ('Movies');
-
- $item = new Item();
- $item->setAttributes(['name' => 'Agile Web Application Development with Yii1.1 and PHP5', 'category_id' => 1], false);
- $item->save(false);
- $item = new Item();
- $item->setAttributes(['name' => 'Yii 1.1 Application Development Cookbook', 'category_id' => 1], false);
- $item->save(false);
- $item = new Item();
- $item->setAttributes(['name' => 'Ice Age', 'category_id' => 2], false);
- $item->save(false);
- $item = new Item();
- $item->setAttributes(['name' => 'Toy Story', 'category_id' => 2], false);
- $item->save(false);
- $item = new Item();
- $item->setAttributes(['name' => 'Cars', 'category_id' => 2], false);
- $item->save(false);
-
- $order = new Order();
- $order->setAttributes(['customer_id' => 1, 'created_at' => 1325282384, 'total' => 110.0], false);
- $order->save(false);
- $order = new Order();
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325334482, 'total' => 33.0], false);
- $order->save(false);
- $order = new Order();
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325502201, 'total' => 40.0], false);
- $order->save(false);
-
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 1, 'quantity' => 1, 'subtotal' => 30.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 2, 'quantity' => 2, 'subtotal' => 40.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 4, 'quantity' => 1, 'subtotal' => 10.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 5, 'quantity' => 1, 'subtotal' => 15.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 3, 'quantity' => 1, 'subtotal' => 8.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItem();
- $orderItem->setAttributes(['order_id' => 3, 'item_id' => 2, 'quantity' => 1, 'subtotal' => 40.0], false);
- $orderItem->save(false);
-
- $order = new OrderWithNullFK();
- $order->setAttributes(['customer_id' => 1, 'created_at' => 1325282384, 'total' => 110.0], false);
- $order->save(false);
- $order = new OrderWithNullFK();
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325334482, 'total' => 33.0], false);
- $order->save(false);
- $order = new OrderWithNullFK();
- $order->setAttributes(['customer_id' => 2, 'created_at' => 1325502201, 'total' => 40.0], false);
- $order->save(false);
-
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 1, 'quantity' => 1, 'subtotal' => 30.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 1, 'item_id' => 2, 'quantity' => 2, 'subtotal' => 40.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 4, 'quantity' => 1, 'subtotal' => 10.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 5, 'quantity' => 1, 'subtotal' => 15.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 2, 'item_id' => 3, 'quantity' => 1, 'subtotal' => 8.0], false);
- $orderItem->save(false);
- $orderItem = new OrderItemWithNullFK();
- $orderItem->setAttributes(['order_id' => 3, 'item_id' => 2, 'quantity' => 1, 'subtotal' => 40.0], false);
- $orderItem->save(false);
-
- }
-
- public function testFindEagerViaRelationPreserveOrder()
- {
- $this->markTestSkipped('Redis does not support orderBy.');
- }
-
- public function testFindEagerViaRelationPreserveOrderB()
- {
- $this->markTestSkipped('Redis does not support orderBy.');
- }
-
- /**
- * overridden because null values are not part of the asArray result in redis
- */
- public function testFindAsArray()
- {
- /* @var $customerClass \yii\db\ActiveRecordInterface */
- $customerClass = $this->getCustomerClass();
-
- // asArray
- $customer = $customerClass::find()->where(['id' => 2])->asArray()->one();
- $this->assertEquals([
- 'id' => 2,
- 'email' => 'user2@example.com',
- 'name' => 'user2',
- 'address' => 'address2',
- 'status' => 1,
- ], $customer);
-
- // find all asArray
- $customers = $customerClass::find()->asArray()->all();
- $this->assertEquals(3, count($customers));
- $this->assertArrayHasKey('id', $customers[0]);
- $this->assertArrayHasKey('name', $customers[0]);
- $this->assertArrayHasKey('email', $customers[0]);
- $this->assertArrayHasKey('address', $customers[0]);
- $this->assertArrayHasKey('status', $customers[0]);
- $this->assertArrayHasKey('id', $customers[1]);
- $this->assertArrayHasKey('name', $customers[1]);
- $this->assertArrayHasKey('email', $customers[1]);
- $this->assertArrayHasKey('address', $customers[1]);
- $this->assertArrayHasKey('status', $customers[1]);
- $this->assertArrayHasKey('id', $customers[2]);
- $this->assertArrayHasKey('name', $customers[2]);
- $this->assertArrayHasKey('email', $customers[2]);
- $this->assertArrayHasKey('address', $customers[2]);
- $this->assertArrayHasKey('status', $customers[2]);
- }
-
- public function testStatisticalFind()
- {
- // find count, sum, average, min, max, scalar
- $this->assertEquals(3, Customer::find()->count());
- $this->assertEquals(6, Customer::find()->sum('id'));
- $this->assertEquals(2, Customer::find()->average('id'));
- $this->assertEquals(1, Customer::find()->min('id'));
- $this->assertEquals(3, Customer::find()->max('id'));
-
- $this->assertEquals(6, OrderItem::find()->count());
- $this->assertEquals(7, OrderItem::find()->sum('quantity'));
- }
-
- public function testFindIndexBy()
- {
- $customerClass = $this->getCustomerClass();
- /* @var $this TestCase|ActiveRecordTestTrait */
- // indexBy
- $customers = Customer::find()->indexBy('name')/*->orderBy('id')*/->all();
- $this->assertEquals(3, count($customers));
- $this->assertTrue($customers['user1'] instanceof $customerClass);
- $this->assertTrue($customers['user2'] instanceof $customerClass);
- $this->assertTrue($customers['user3'] instanceof $customerClass);
-
- // indexBy callable
- $customers = Customer::find()->indexBy(function ($customer) {
- return $customer->id . '-' . $customer->name;
- })/*->orderBy('id')*/->all(); // TODO this test is duplicated because of missing orderBy support in redis
- $this->assertEquals(3, count($customers));
- $this->assertTrue($customers['1-user1'] instanceof $customerClass);
- $this->assertTrue($customers['2-user2'] instanceof $customerClass);
- $this->assertTrue($customers['3-user3'] instanceof $customerClass);
- }
-
- public function testFindLimit()
- {
- // TODO this test is duplicated because of missing orderBy support in redis
- /* @var $this TestCase|ActiveRecordTestTrait */
- // all()
- $customers = Customer::find()->all();
- $this->assertEquals(3, count($customers));
-
- $customers = Customer::find()/*->orderBy('id')*/->limit(1)->all();
- $this->assertEquals(1, count($customers));
- $this->assertEquals('user1', $customers[0]->name);
-
- $customers = Customer::find()/*->orderBy('id')*/->limit(1)->offset(1)->all();
- $this->assertEquals(1, count($customers));
- $this->assertEquals('user2', $customers[0]->name);
-
- $customers = Customer::find()/*->orderBy('id')*/->limit(1)->offset(2)->all();
- $this->assertEquals(1, count($customers));
- $this->assertEquals('user3', $customers[0]->name);
-
- $customers = Customer::find()/*->orderBy('id')*/->limit(2)->offset(1)->all();
- $this->assertEquals(2, count($customers));
- $this->assertEquals('user2', $customers[0]->name);
- $this->assertEquals('user3', $customers[1]->name);
-
- $customers = Customer::find()->limit(2)->offset(3)->all();
- $this->assertEquals(0, count($customers));
-
- // one()
- $customer = Customer::find()/*->orderBy('id')*/->one();
- $this->assertEquals('user1', $customer->name);
-
- $customer = Customer::find()/*->orderBy('id')*/->offset(0)->one();
- $this->assertEquals('user1', $customer->name);
-
- $customer = Customer::find()/*->orderBy('id')*/->offset(1)->one();
- $this->assertEquals('user2', $customer->name);
-
- $customer = Customer::find()/*->orderBy('id')*/->offset(2)->one();
- $this->assertEquals('user3', $customer->name);
-
- $customer = Customer::find()->offset(3)->one();
- $this->assertNull($customer);
- }
-
- public function testFindEagerViaRelation()
- {
- /* @var $orderClass \yii\db\ActiveRecordInterface */
- $orderClass = $this->getOrderClass();
-
- /* @var $this TestCase|ActiveRecordTestTrait */
- $orders = $orderClass::find()->with('items')/*->orderBy('id')*/->all(); // TODO this test is duplicated because of missing orderBy support in redis
- $this->assertEquals(3, count($orders));
- $order = $orders[0];
- $this->assertEquals(1, $order->id);
- $this->assertEquals(2, count($order->items));
- $this->assertEquals(1, $order->items[0]->id);
- $this->assertEquals(2, $order->items[1]->id);
- }
-
- public function testFindColumn()
- {
- // TODO this test is duplicated because of missing orderBy support in redis
- $this->assertEquals(['user1', 'user2', 'user3'], Customer::find()->column('name'));
- // TODO $this->assertEquals(['user3', 'user2', 'user1'], Customer::find()->orderBy(['name' => SORT_DESC])->column('name'));
- }
-
- // TODO test serial column incr
-
- public function testUpdatePk()
- {
- // updateCounters
- $pk = ['order_id' => 2, 'item_id' => 4];
- $orderItem = OrderItem::findOne($pk);
- $this->assertEquals(2, $orderItem->order_id);
- $this->assertEquals(4, $orderItem->item_id);
-
- $orderItem->order_id = 2;
- $orderItem->item_id = 10;
- $orderItem->save();
-
- $this->assertNull(OrderItem::findOne($pk));
- $this->assertNotNull(OrderItem::findOne(['order_id' => 2, 'item_id' => 10]));
- }
-
- public function testFilterWhere()
- {
- // should work with hash format
- $query = new ActiveQuery('dummy');
- $query->filterWhere([
- 'id' => 0,
- 'title' => ' ',
- 'author_ids' => [],
- ]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->andFilterWhere(['status' => null]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->orFilterWhere(['name' => '']);
- $this->assertEquals(['id' => 0], $query->where);
-
- // should work with operator format
- $query = new ActiveQuery('dummy');
- $condition = ['like', 'name', 'Alex'];
- $query->filterWhere($condition);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->orFilterWhere(['not between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not like', 'id', ' ']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or not like', 'id', null]);
- $this->assertEquals($condition, $query->where);
- }
-
- public function testFilterWhereRecursively()
- {
- $query = new ActiveQuery('dummy');
- $query->filterWhere(['and', ['like', 'name', ''], ['like', 'title', ''], ['id' => 1], ['not', ['like', 'name', '']]]);
- $this->assertEquals(['and', ['id' => 1]], $query->where);
- }
-}
diff --git a/tests/unit/extensions/redis/RedisCacheTest.php b/tests/unit/extensions/redis/RedisCacheTest.php
deleted file mode 100644
index 76025c7..0000000
--- a/tests/unit/extensions/redis/RedisCacheTest.php
+++ /dev/null
@@ -1,101 +0,0 @@
-markTestSkipped('No redis server connection configured.');
- }
- $connection = new Connection($params);
- if (!@stream_socket_client($connection->hostname . ':' . $connection->port, $errorNumber, $errorDescription, 0.5)) {
- $this->markTestSkipped('No redis server running at ' . $connection->hostname . ':' . $connection->port . ' : ' . $errorNumber . ' - ' . $errorDescription);
- }
-
- $this->mockApplication(['components' => ['redis' => $connection]]);
-
- if ($this->_cacheInstance === null) {
- $this->_cacheInstance = new Cache();
- }
-
- return $this->_cacheInstance;
- }
-
- public function testExpireMilliseconds()
- {
- $cache = $this->getCacheInstance();
-
- $this->assertTrue($cache->set('expire_test_ms', 'expire_test_ms', 0.2));
- usleep(100000);
- $this->assertEquals('expire_test_ms', $cache->get('expire_test_ms'));
- usleep(300000);
- $this->assertFalse($cache->get('expire_test_ms'));
- }
-
- public function testExpireAddMilliseconds()
- {
- $cache = $this->getCacheInstance();
-
- $this->assertTrue($cache->add('expire_testa_ms', 'expire_testa_ms', 0.2));
- usleep(100000);
- $this->assertEquals('expire_testa_ms', $cache->get('expire_testa_ms'));
- usleep(300000);
- $this->assertFalse($cache->get('expire_testa_ms'));
- }
-
- /**
- * Store a value that is 2 times buffer size big
- * https://github.com/yiisoft/yii2/issues/743
- */
- public function testLargeData()
- {
- $cache = $this->getCacheInstance();
-
- $data = str_repeat('XX', 8192); // http://www.php.net/manual/en/function.fread.php
- $key = 'bigdata1';
-
- $this->assertFalse($cache->get($key));
- $cache->set($key, $data);
- $this->assertTrue($cache->get($key) === $data);
-
- // try with multibyte string
- $data = str_repeat('ЖЫ', 8192); // http://www.php.net/manual/en/function.fread.php
- $key = 'bigdata2';
-
- $this->assertFalse($cache->get($key));
- $cache->set($key, $data);
- $this->assertTrue($cache->get($key) === $data);
- }
-
- public function testMultiByteGetAndSet()
- {
- $cache = $this->getCacheInstance();
-
- $data = ['abc' => 'ежик', 2 => 'def'];
- $key = 'data1';
-
- $this->assertFalse($cache->get($key));
- $cache->set($key, $data);
- $this->assertTrue($cache->get($key) === $data);
- }
-}
diff --git a/tests/unit/extensions/redis/RedisConnectionTest.php b/tests/unit/extensions/redis/RedisConnectionTest.php
deleted file mode 100644
index b25e28d..0000000
--- a/tests/unit/extensions/redis/RedisConnectionTest.php
+++ /dev/null
@@ -1,82 +0,0 @@
-getConnection(false);
- $db->open();
- $this->assertTrue($db->ping());
- $db->set('YIITESTKEY', 'YIITESTVALUE');
- $db->close();
-
- $db = $this->getConnection(false);
- $db->database = 0;
- $db->open();
- $this->assertEquals('YIITESTVALUE', $db->get('YIITESTKEY'));
- $db->close();
-
- $db = $this->getConnection(false);
- $db->database = 1;
- $db->open();
- $this->assertNull($db->get('YIITESTKEY'));
- $db->close();
- }
-
- public function keyValueData()
- {
- return [
- [123],
- [-123],
- [0],
- ['test'],
- ["test\r\ntest"],
- [''],
- ];
- }
-
- /**
- * @dataProvider keyValueData
- */
- public function testStoreGet($data)
- {
- $db = $this->getConnection(true);
-
- $db->set('hi', $data);
- $this->assertEquals($data, $db->get('hi'));
- }
-
- /**
- * https://github.com/yiisoft/yii2/issues/4745
- */
- public function testReturnType()
- {
- $redis = $this->getConnection();
- $redis->executeCommand('SET',['key1','val1']);
- $redis->executeCommand('HMSET',['hash1','hk3','hv3','hk4','hv4']);
- $redis->executeCommand('RPUSH',['newlist2','tgtgt','tgtt','44',11]);
- $redis->executeCommand('SADD',['newset2','segtggttval','sv1','sv2','sv3']);
- $redis->executeCommand('ZADD',['newz2',2,'ss',3,'pfpf']);
- $allKeys = $redis->executeCommand('KEYS',['*']);
- sort($allKeys);
- $this->assertEquals(['hash1', 'key1', 'newlist2', 'newset2', 'newz2'], $allKeys);
- $expected = [
- 'hash1' => 'hash',
- 'key1' => 'string',
- 'newlist2' => 'list',
- 'newset2' => 'set',
- 'newz2' => 'zset',
- ];
- foreach($allKeys as $key) {
- $this->assertEquals($expected[$key], $redis->executeCommand('TYPE',[$key]));
- }
- }
-}
diff --git a/tests/unit/extensions/redis/RedisTestCase.php b/tests/unit/extensions/redis/RedisTestCase.php
deleted file mode 100644
index bd35117..0000000
--- a/tests/unit/extensions/redis/RedisTestCase.php
+++ /dev/null
@@ -1,49 +0,0 @@
-markTestSkipped('No redis server connection configured.');
- }
- $connection = new Connection($params);
- if (!@stream_socket_client($connection->hostname . ':' . $connection->port, $errorNumber, $errorDescription, 0.5)) {
- $this->markTestSkipped('No redis server running at ' . $connection->hostname . ':' . $connection->port . ' : ' . $errorNumber . ' - ' . $errorDescription);
- }
-
- $this->mockApplication(['components' => ['redis' => $connection]]);
-
- parent::setUp();
- }
-
- /**
- * @param boolean $reset whether to clean up the test database
- * @return Connection
- */
- public function getConnection($reset = true)
- {
- $databases = self::getParam('databases');
- $params = isset($databases['redis']) ? $databases['redis'] : [];
- $db = new Connection($params);
- if ($reset) {
- $db->open();
- $db->flushdb();
- }
-
- return $db;
- }
-}
diff --git a/tests/unit/extensions/smarty/ViewRendererTest.php b/tests/unit/extensions/smarty/ViewRendererTest.php
deleted file mode 100644
index 92e0290..0000000
--- a/tests/unit/extensions/smarty/ViewRendererTest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-
- */
-
-namespace yiiunit\extensions\smarty;
-
-use yii\helpers\FileHelper;
-use yii\web\AssetManager;
-use yii\web\View;
-use Yii;
-use yiiunit\data\base\Singer;
-use yiiunit\TestCase;
-
-/**
- * @group smarty
- */
-class ViewRendererTest extends TestCase
-{
- protected function setUp()
- {
- parent::setUp();
- $this->mockWebApplication();
- }
-
- protected function tearDown()
- {
- parent::tearDown();
- FileHelper::removeDirectory(Yii::getAlias('@runtime/assets'));
- FileHelper::removeDirectory(Yii::getAlias('@runtime/Smarty'));
- }
-
- /**
- * https://github.com/yiisoft/yii2/issues/2265
- */
- public function testNoParams()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/simple.tpl');
-
- $this->assertEquals('simple view without parameters.', $content);
- }
-
- public function testRender()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/view.tpl', ['param' => 'Hello World!']);
-
- $this->assertEquals('test view Hello World!.', $content);
- }
-
- public function testLayoutAssets()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/layout.tpl');
-
- $this->assertEquals(1, preg_match('#\s*#', $content), 'Content does not contain the jquery js:' . $content);
- }
-
-
- public function testChangeTitle()
- {
- $view = $this->mockView();
- $view->title = 'Original title';
-
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/changeTitle.tpl');
- $this->assertTrue(strpos($content, 'New title') !== false, 'New title should be there:' . $content);
- $this->assertFalse(strpos($content, 'Original title') !== false, 'Original title should not be there:' . $content);
- }
-
- public function testForm()
- {
- $view = $this->mockView();
- $model = new Singer();
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/form.tpl', ['model' => $model]);
- $this->assertEquals(1, preg_match('#
#s', $content), 'Content does not contain form:' . $content);
- }
-
- public function testInheritance()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/extends2.tpl');
- $this->assertTrue(strpos($content, 'Hello, I\'m inheritance test!') !== false, 'Hello, I\'m inheritance test! should be there:' . $content);
- $this->assertTrue(strpos($content, 'extends2 block') !== false, 'extends2 block should be there:' . $content);
- $this->assertFalse(strpos($content, 'extends1 block') !== false, 'extends1 block should not be there:' . $content);
-
- $content = $view->renderFile('@yiiunit/extensions/smarty/views/extends3.tpl');
- $this->assertTrue(strpos($content, 'Hello, I\'m inheritance test!') !== false, 'Hello, I\'m inheritance test! should be there:' . $content);
- $this->assertTrue(strpos($content, 'extends3 block') !== false, 'extends3 block should be there:' . $content);
- $this->assertFalse(strpos($content, 'extends1 block') !== false, 'extends1 block should not be there:' . $content);
- }
-
- /**
- * @return View
- */
- protected function mockView()
- {
- return new View([
- 'renderers' => [
- 'tpl' => [
- 'class' => 'yii\smarty\ViewRenderer',
- 'options' => [
- 'force_compile' => true, // always recompile templates, don't do it in production
- ],
- ],
- ],
- 'assetManager' => $this->mockAssetManager(),
- ]);
- }
-
- protected function mockAssetManager()
- {
- $assetDir = Yii::getAlias('@runtime/assets');
- if (!is_dir($assetDir)) {
- mkdir($assetDir, 0777, true);
- }
-
- return new AssetManager([
- 'basePath' => $assetDir,
- 'baseUrl' => '/assets',
- ]);
- }
-}
diff --git a/tests/unit/extensions/smarty/views/changeTitle.tpl b/tests/unit/extensions/smarty/views/changeTitle.tpl
deleted file mode 100644
index 0b34602..0000000
--- a/tests/unit/extensions/smarty/views/changeTitle.tpl
+++ /dev/null
@@ -1,3 +0,0 @@
-{set title='New title'}
-
-
{$this->title}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/extends1.tpl b/tests/unit/extensions/smarty/views/extends1.tpl
deleted file mode 100644
index a5a386a..0000000
--- a/tests/unit/extensions/smarty/views/extends1.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-Hello, I'm inheritance test!
-
-{block name=test}
-extends1 block
-{/block}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/extends2.tpl b/tests/unit/extensions/smarty/views/extends2.tpl
deleted file mode 100644
index 53d95a3..0000000
--- a/tests/unit/extensions/smarty/views/extends2.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-{extends file="@yiiunit/extensions/smarty/views/extends1.tpl"}
-
-{block name=test}
-extends2 block
-{/block}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/extends3.tpl b/tests/unit/extensions/smarty/views/extends3.tpl
deleted file mode 100644
index 5296d8c..0000000
--- a/tests/unit/extensions/smarty/views/extends3.tpl
+++ /dev/null
@@ -1,5 +0,0 @@
-{extends file="@yiiunit/extensions/smarty/views/extends1.tpl"}
-
-{block name=test}
-extends3 block
-{/block}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/form.tpl b/tests/unit/extensions/smarty/views/form.tpl
deleted file mode 100644
index 91e7342..0000000
--- a/tests/unit/extensions/smarty/views/form.tpl
+++ /dev/null
@@ -1,9 +0,0 @@
-{use class='yii\widgets\ActiveForm' type='block'}
-{ActiveForm assign='form' id='login-form' action='/form-handler' options=['class' => 'form-horizontal']}
- {$form->field($model, 'firstName')}
-
-{/ActiveForm}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/layout.tpl b/tests/unit/extensions/smarty/views/layout.tpl
deleted file mode 100644
index 4d07e82..0000000
--- a/tests/unit/extensions/smarty/views/layout.tpl
+++ /dev/null
@@ -1,16 +0,0 @@
-{use class="yii\web\JqueryAsset"}
-{JqueryAsset::register($this)|void}
-{$this->beginPage()}
-
-
-
-
-
{$this->title|escape}
- {$this->head()}
-
-
-{$this->beginBody()}
- body
-{$this->endBody()}
-
-{$this->endPage()}
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/simple.tpl b/tests/unit/extensions/smarty/views/simple.tpl
deleted file mode 100644
index a9f660c..0000000
--- a/tests/unit/extensions/smarty/views/simple.tpl
+++ /dev/null
@@ -1 +0,0 @@
-simple view without parameters.
\ No newline at end of file
diff --git a/tests/unit/extensions/smarty/views/view.tpl b/tests/unit/extensions/smarty/views/view.tpl
deleted file mode 100644
index 22f58fb..0000000
--- a/tests/unit/extensions/smarty/views/view.tpl
+++ /dev/null
@@ -1 +0,0 @@
-test view {$param}.
\ No newline at end of file
diff --git a/tests/unit/extensions/sphinx/ActiveDataProviderTest.php b/tests/unit/extensions/sphinx/ActiveDataProviderTest.php
deleted file mode 100644
index 50841e5..0000000
--- a/tests/unit/extensions/sphinx/ActiveDataProviderTest.php
+++ /dev/null
@@ -1,66 +0,0 @@
-getConnection();
- }
-
- // Tests :
-
- public function testQuery()
- {
- $query = new Query;
- $query->from('yii2_test_article_index');
-
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(2, count($models));
-
- $provider = new ActiveDataProvider([
- 'query' => $query,
- 'db' => $this->getConnection(),
- 'pagination' => [
- 'pageSize' => 1,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(1, count($models));
- }
-
- public function testActiveQuery()
- {
- $provider = new ActiveDataProvider([
- 'query' => ArticleIndex::find()->orderBy('id ASC'),
- ]);
- $models = $provider->getModels();
- $this->assertEquals(2, count($models));
- $this->assertTrue($models[0] instanceof ArticleIndex);
- $this->assertTrue($models[1] instanceof ArticleIndex);
- $this->assertEquals([1, 2], $provider->getKeys());
-
- $provider = new ActiveDataProvider([
- 'query' => ArticleIndex::find(),
- 'pagination' => [
- 'pageSize' => 1,
- ]
- ]);
- $models = $provider->getModels();
- $this->assertEquals(1, count($models));
- }
-}
diff --git a/tests/unit/extensions/sphinx/ActiveRecordTest.php b/tests/unit/extensions/sphinx/ActiveRecordTest.php
deleted file mode 100644
index e5e2dd8..0000000
--- a/tests/unit/extensions/sphinx/ActiveRecordTest.php
+++ /dev/null
@@ -1,258 +0,0 @@
-getConnection();
- }
-
- protected function tearDown()
- {
- $this->truncateRuntimeIndex('yii2_test_rt_index');
- parent::tearDown();
- }
-
- // Tests :
-
- public function testFind()
- {
- // find one
- $result = ArticleIndex::find();
- $this->assertTrue($result instanceof ActiveQuery);
- $article = $result->one();
- $this->assertTrue($article instanceof ArticleIndex);
-
- // find all
- $articles = ArticleIndex::find()->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles[0] instanceof ArticleIndex);
- $this->assertTrue($articles[1] instanceof ArticleIndex);
-
- // find fulltext
- $article = ArticleIndex::findOne(2);
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->id);
-
- // find by column values
- $article = ArticleIndex::findOne(['id' => 2, 'author_id' => 2]);
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->id);
- $this->assertEquals(2, $article->author_id);
- $article = ArticleIndex::findOne(['id' => 2, 'author_id' => 1]);
- $this->assertNull($article);
-
- // find by attributes
- $article = ArticleIndex::find()->where(['author_id' => 2])->one();
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->id);
-
- // find by comparison
- $article = ArticleIndex::find()->where(['>', 'author_id', 1])->one();
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->id);
-
- // find custom column
- $article = ArticleIndex::find()->select(['*', '(5*2) AS custom_column'])
- ->where(['author_id' => 1])->one();
- $this->assertEquals(1, $article->id);
- $this->assertEquals(10, $article->custom_column);
-
- // find count, sum, average, min, max, scalar
- $this->assertEquals(2, ArticleIndex::find()->count());
- $this->assertEquals(1, ArticleIndex::find()->where('id=1')->count());
- $this->assertEquals(3, ArticleIndex::find()->sum('id'));
- $this->assertEquals(1.5, ArticleIndex::find()->average('id'));
- $this->assertEquals(1, ArticleIndex::find()->min('id'));
- $this->assertEquals(2, ArticleIndex::find()->max('id'));
- $this->assertEquals(2, ArticleIndex::find()->select('COUNT(*)')->scalar());
-
- // scope
- $this->assertEquals(1, ArticleIndex::find()->favoriteAuthor()->count());
-
- // asArray
- $article = ArticleIndex::find()->where('id=2')->asArray()->one();
- unset($article['add_date']);
- $this->assertEquals([
- 'id' => '2',
- 'author_id' => '2',
- 'tag' => '3,4',
- ], $article);
-
- // indexBy
- $articles = ArticleIndex::find()->indexBy('author_id')->orderBy('id DESC')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles['1'] instanceof ArticleIndex);
- $this->assertTrue($articles['2'] instanceof ArticleIndex);
-
- // indexBy callable
- $articles = ArticleIndex::find()->indexBy(function ($article) {
- return $article->id . '-' . $article->author_id;
- })->orderBy('id DESC')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles['1-1'] instanceof ArticleIndex);
- $this->assertTrue($articles['2-2'] instanceof ArticleIndex);
- }
-
- public function testFindBySql()
- {
- // find one
- $article = ArticleIndex::findBySql('SELECT * FROM yii2_test_article_index ORDER BY id DESC')->one();
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->author_id);
-
- // find all
- $articles = ArticleIndex::findBySql('SELECT * FROM yii2_test_article_index')->all();
- $this->assertEquals(2, count($articles));
-
- // find with parameter binding
- $article = ArticleIndex::findBySql('SELECT * FROM yii2_test_article_index WHERE id=:id', [':id' => 2])->one();
- $this->assertTrue($article instanceof ArticleIndex);
- $this->assertEquals(2, $article->author_id);
- }
-
- public function testInsert()
- {
- $record = new RuntimeIndex;
- $record->id = 15;
- $record->title = 'test title';
- $record->content = 'test content';
- $record->type_id = 7;
- $record->category = [1, 2];
-
- $this->assertTrue($record->isNewRecord);
-
- $record->save();
-
- $this->assertEquals(15, $record->id);
- $this->assertFalse($record->isNewRecord);
- }
-
- /**
- * @depends testInsert
- */
- public function testUpdate()
- {
- $record = new RuntimeIndex;
- $record->id = 2;
- $record->title = 'test title';
- $record->content = 'test content';
- $record->type_id = 7;
- $record->category = [1, 2];
- $record->save();
-
- // save
- $record = RuntimeIndex::findOne(2);
- $this->assertTrue($record instanceof RuntimeIndex);
- $this->assertEquals(7, $record->type_id);
- $this->assertFalse($record->isNewRecord);
-
- $record->type_id = 9;
- $record->save();
- $this->assertEquals(9, $record->type_id);
- $this->assertFalse($record->isNewRecord);
- $record2 = RuntimeIndex::findOne(['id' => 2]);
- $this->assertEquals(9, $record2->type_id);
-
- // replace
- $query = 'replace';
- $rows = RuntimeIndex::find()->match($query)->all();
- $this->assertEmpty($rows);
- $record = RuntimeIndex::findOne(2);
- $record->content = 'Test content with ' . $query;
- $record->save();
- $rows = RuntimeIndex::find()->match($query);
- $this->assertNotEmpty($rows);
-
- // updateAll
- $pk = ['id' => 2];
- $ret = RuntimeIndex::updateAll(['type_id' => 55], $pk);
- $this->assertEquals(1, $ret);
- $record = RuntimeIndex::findOne($pk);
- $this->assertEquals(55, $record->type_id);
- }
-
- /**
- * @depends testInsert
- */
- public function testDelete()
- {
- // delete
- $record = new RuntimeIndex;
- $record->id = 2;
- $record->title = 'test title';
- $record->content = 'test content';
- $record->type_id = 7;
- $record->category = [1, 2];
- $record->save();
-
- $record = RuntimeIndex::findOne(2);
- $record->delete();
- $record = RuntimeIndex::findOne(2);
- $this->assertNull($record);
-
- // deleteAll
- $record = new RuntimeIndex;
- $record->id = 2;
- $record->title = 'test title';
- $record->content = 'test content';
- $record->type_id = 7;
- $record->category = [1, 2];
- $record->save();
-
- $ret = RuntimeIndex::deleteAll('id = 2');
- $this->assertEquals(1, $ret);
- $records = RuntimeIndex::find()->all();
- $this->assertEquals(0, count($records));
- }
-
- public function testCallSnippets()
- {
- $query = 'pencil';
- $source = 'Some data sentence about ' . $query;
-
- $snippet = ArticleIndex::callSnippets($source, $query);
- $this->assertNotEmpty($snippet, 'Unable to call snippets!');
- $this->assertContains('
' . $query . '', $snippet, 'Query not present in the snippet!');
-
- $rows = ArticleIndex::callSnippets([$source], $query);
- $this->assertNotEmpty($rows, 'Unable to call snippets!');
- $this->assertContains('
' . $query . '', $rows[0], 'Query not present in the snippet!');
- }
-
- public function testCallKeywords()
- {
- $text = 'table pencil';
- $rows = ArticleIndex::callKeywords($text);
- $this->assertNotEmpty($rows, 'Unable to call keywords!');
- $this->assertArrayHasKey('tokenized', $rows[0], 'No tokenized keyword!');
- $this->assertArrayHasKey('normalized', $rows[0], 'No normalized keyword!');
- }
-
- /**
- * @see https://github.com/yiisoft/yii2/issues/4830
- *
- * @depends testFind
- */
- public function testFindQueryReuse()
- {
- $result = ArticleIndex::find()->andWhere(['author_id' => 1]);
- $this->assertTrue($result->one() instanceof ArticleIndex);
- $this->assertTrue($result->one() instanceof ArticleIndex);
-
- $result = ArticleIndex::find()->match('dogs');
- $this->assertTrue($result->one() instanceof ArticleIndex);
- $this->assertTrue($result->one() instanceof ArticleIndex);
- }
-}
diff --git a/tests/unit/extensions/sphinx/ActiveRelationTest.php b/tests/unit/extensions/sphinx/ActiveRelationTest.php
deleted file mode 100644
index 516aa46..0000000
--- a/tests/unit/extensions/sphinx/ActiveRelationTest.php
+++ /dev/null
@@ -1,58 +0,0 @@
-getConnection();
- ActiveRecordDb::$db = $this->getDbConnection();
- }
-
- // Tests :
-
- public function testFindLazy()
- {
- /* @var $article ArticleDb */
- $article = ArticleDb::findOne(['id' => 2]);
- $this->assertFalse($article->isRelationPopulated('index'));
- $index = $article->index;
- $this->assertTrue($article->isRelationPopulated('index'));
- $this->assertTrue($index instanceof ArticleIndex);
- $this->assertEquals(1, count($article->relatedRecords));
- $this->assertEquals($article->id, $index->id);
- }
-
- public function testFindEager()
- {
- $articles = ArticleDb::find()->with('index')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles[0]->isRelationPopulated('index'));
- $this->assertTrue($articles[1]->isRelationPopulated('index'));
- $this->assertTrue($articles[0]->index instanceof ArticleIndex);
- $this->assertTrue($articles[1]->index instanceof ArticleIndex);
- }
-
- /**
- * @see https://github.com/yiisoft/yii2/issues/4018
- */
- public function testFindCompositeLink()
- {
- $articles = ArticleIndex::find()->with('sourceCompositeLink')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles[0]->isRelationPopulated('sourceCompositeLink'));
- $this->assertNotEmpty($articles[0]->sourceCompositeLink);
- $this->assertTrue($articles[1]->isRelationPopulated('sourceCompositeLink'));
- $this->assertNotEmpty($articles[1]->sourceCompositeLink);
- }
-}
diff --git a/tests/unit/extensions/sphinx/ColumnSchemaTest.php b/tests/unit/extensions/sphinx/ColumnSchemaTest.php
deleted file mode 100644
index fb0e67a..0000000
--- a/tests/unit/extensions/sphinx/ColumnSchemaTest.php
+++ /dev/null
@@ -1,55 +0,0 @@
-type = $type;
- $columnSchema->phpType = $phpType;
- $this->assertEquals($expectedResult, $columnSchema->phpTypecast($value));
- }
-}
diff --git a/tests/unit/extensions/sphinx/CommandTest.php b/tests/unit/extensions/sphinx/CommandTest.php
deleted file mode 100644
index 9d09231..0000000
--- a/tests/unit/extensions/sphinx/CommandTest.php
+++ /dev/null
@@ -1,409 +0,0 @@
-truncateRuntimeIndex('yii2_test_rt_index');
- parent::tearDown();
- }
-
- // Tests :
-
- public function testConstruct()
- {
- $db = $this->getConnection(false);
-
- // null
- $command = $db->createCommand();
- $this->assertEquals(null, $command->sql);
-
- // string
- $sql = 'SELECT * FROM yii2_test_item_index';
- $params = [
- 'name' => 'value'
- ];
- $command = $db->createCommand($sql, $params);
- $this->assertEquals($sql, $command->sql);
- $this->assertEquals($params, $command->params);
- }
-
- public function testGetSetSql()
- {
- $db = $this->getConnection(false);
-
- $sql = 'SELECT * FROM yii2_test_item_index';
- $command = $db->createCommand($sql);
- $this->assertEquals($sql, $command->sql);
-
- $sql2 = 'SELECT * FROM yii2_test_item_index';
- $command->sql = $sql2;
- $this->assertEquals($sql2, $command->sql);
- }
-
- public function testAutoQuoting()
- {
- $db = $this->getConnection(false);
-
- $sql = 'SELECT [[id]], [[t.name]] FROM {{yii2_test_item_index}} t';
- $command = $db->createCommand($sql);
- $this->assertEquals("SELECT `id`, `t`.`name` FROM `yii2_test_item_index` t", $command->sql);
- }
-
- public function testPrepareCancel()
- {
- $db = $this->getConnection(false);
-
- $command = $db->createCommand('SELECT * FROM yii2_test_item_index');
- $this->assertEquals(null, $command->pdoStatement);
- $command->prepare();
- $this->assertNotEquals(null, $command->pdoStatement);
- $command->cancel();
- $this->assertEquals(null, $command->pdoStatement);
- }
-
- public function testExecute()
- {
- $db = $this->getConnection();
-
- $sql = 'SELECT COUNT(*) FROM yii2_test_item_index WHERE MATCH(\'wooden\')';
- $command = $db->createCommand($sql);
- $this->assertEquals(1, $command->queryScalar());
-
- $command = $db->createCommand('bad SQL');
- $this->setExpectedException('\yii\db\Exception');
- $command->execute();
- }
-
- public function testQuery()
- {
- $db = $this->getConnection();
-
- // query
- $sql = 'SELECT * FROM yii2_test_item_index';
- $reader = $db->createCommand($sql)->query();
- $this->assertTrue($reader instanceof DataReader);
-
- // queryAll
- $rows = $db->createCommand('SELECT * FROM yii2_test_item_index')->queryAll();
- $this->assertEquals(2, count($rows));
- $row = $rows[1];
- $this->assertEquals(2, $row['id']);
- $this->assertEquals(2, $row['category_id']);
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_item_index WHERE id=10')->queryAll();
- $this->assertEquals([], $rows);
-
- // queryOne
- $sql = 'SELECT * FROM yii2_test_item_index ORDER BY id ASC';
- $row = $db->createCommand($sql)->queryOne();
- $this->assertEquals(1, $row['id']);
- $this->assertEquals(1, $row['category_id']);
-
- $sql = 'SELECT * FROM yii2_test_item_index ORDER BY id ASC';
- $command = $db->createCommand($sql);
- $command->prepare();
- $row = $command->queryOne();
- $this->assertEquals(1, $row['id']);
- $this->assertEquals(1, $row['category_id']);
-
- $sql = 'SELECT * FROM yii2_test_item_index WHERE id=10';
- $command = $db->createCommand($sql);
- $this->assertFalse($command->queryOne());
-
- // queryColumn
- $sql = 'SELECT * FROM yii2_test_item_index';
- $column = $db->createCommand($sql)->queryColumn();
- $this->assertEquals(range(1, 2), $column);
-
- $command = $db->createCommand('SELECT id FROM yii2_test_item_index WHERE id=10');
- $this->assertEquals([], $command->queryColumn());
-
- // queryScalar
- $sql = 'SELECT * FROM yii2_test_item_index ORDER BY id ASC';
- $this->assertEquals($db->createCommand($sql)->queryScalar(), 1);
-
- $sql = 'SELECT id FROM yii2_test_item_index ORDER BY id ASC';
- $command = $db->createCommand($sql);
- $command->prepare();
- $this->assertEquals(1, $command->queryScalar());
-
- $command = $db->createCommand('SELECT id FROM yii2_test_item_index WHERE id=10');
- $this->assertFalse($command->queryScalar());
-
- $command = $db->createCommand('bad SQL');
- $this->setExpectedException('\yii\db\Exception');
- $command->query();
- }
-
- /**
- * @depends testQuery
- */
- public function testInsert()
- {
- $db = $this->getConnection();
-
- $command = $db->createCommand()->insert('yii2_test_rt_index', [
- 'title' => 'Test title',
- 'content' => 'Test content',
- 'type_id' => 2,
- 'category' => [1, 2],
- 'id' => 1,
- ]);
- $this->assertEquals(1, $command->execute(), 'Unable to execute insert!');
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals(1, count($rows), 'No row inserted!');
- }
-
- /**
- * @depends testInsert
- */
- public function testBatchInsert()
- {
- $db = $this->getConnection();
-
- $command = $db->createCommand()->batchInsert(
- 'yii2_test_rt_index',
- [
- 'title',
- 'content',
- 'type_id',
- 'category',
- 'id',
- ],
- [
- [
- 'Test title 1',
- 'Test content 1',
- 1,
- [1, 2],
- 1,
- ],
- [
- 'Test title 2',
- 'Test content 2',
- 2,
- [3, 4],
- 2,
- ],
- ]
- );
- $this->assertEquals(2, $command->execute(), 'Unable to execute batch insert!');
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals(2, count($rows), 'No rows inserted!');
- }
-
- /**
- * @depends testInsert
- */
- public function testReplace()
- {
- $db = $this->getConnection();
-
- $command = $db->createCommand()->replace('yii2_test_rt_index', [
- 'title' => 'Test title',
- 'content' => 'Test content',
- 'type_id' => 2,
- 'category' => [1, 2],
- 'id' => 1,
- ]);
- $this->assertEquals(1, $command->execute(), 'Unable to execute replace!');
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals(1, count($rows), 'No row inserted!');
-
- $newTypeId = 5;
- $command = $db->createCommand()->replace('yii2_test_rt_index', [
- 'type_id' => $newTypeId,
- 'category' => [3, 4],
- 'id' => 1,
- ]);
- $this->assertEquals(1, $command->execute(), 'Unable to update via replace!');
-
- list($row) = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals($newTypeId, $row['type_id'], 'Unable to update attribute value!');
- }
-
- /**
- * @depends testReplace
- */
- public function testBatchReplace()
- {
- $db = $this->getConnection();
-
- $command = $db->createCommand()->batchReplace(
- 'yii2_test_rt_index',
- [
- 'title',
- 'content',
- 'type_id',
- 'category',
- 'id',
- ],
- [
- [
- 'Test title 1',
- 'Test content 1',
- 1,
- [1, 2],
- 1,
- ],
- [
- 'Test title 2',
- 'Test content 2',
- 2,
- [3, 4],
- 2,
- ],
- ]
- );
- $this->assertEquals(2, $command->execute(), 'Unable to execute batch replace!');
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals(2, count($rows), 'No rows inserted!');
-
- $newTypeId = 5;
- $command = $db->createCommand()->replace('yii2_test_rt_index', [
- 'type_id' => $newTypeId,
- 'id' => 1,
- ]);
- $this->assertEquals(1, $command->execute(), 'Unable to update via replace!');
- list($row) = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals($newTypeId, $row['type_id'], 'Unable to update attribute value!');
- }
-
- /**
- * @depends testInsert
- */
- public function testUpdate()
- {
- $db = $this->getConnection();
-
- $db->createCommand()->insert('yii2_test_rt_index', [
- 'title' => 'Test title',
- 'content' => 'Test content',
- 'type_id' => 2,
- 'id' => 1,
- ])->execute();
-
- $newTypeId = 5;
- $command = $db->createCommand()->update(
- 'yii2_test_rt_index',
- [
- 'type_id' => $newTypeId,
- 'category' => [3, 4],
- ],
- 'id = 1'
- );
- $this->assertEquals(1, $command->execute(), 'Unable to execute update!');
-
- list($row) = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals($newTypeId, $row['type_id'], 'Unable to update attribute value!');
- }
-
- /**
- * @depends testUpdate
- */
- public function testUpdateWithOptions()
- {
- $db = $this->getConnection();
-
- $db->createCommand()->insert('yii2_test_rt_index', [
- 'title' => 'Test title',
- 'content' => 'Test content',
- 'type_id' => 2,
- 'id' => 1,
- ])->execute();
-
- $newTypeId = 5;
- $command = $db->createCommand()->update(
- 'yii2_test_rt_index',
- [
- 'type_id' => $newTypeId,
- 'non_existing_attribute' => 10,
- ],
- 'id = 1',
- [],
- [
- 'ignore_nonexistent_columns' => 1
- ]
- );
- $this->assertEquals(1, $command->execute(), 'Unable to execute update!');
- }
-
- /**
- * @depends testInsert
- */
- public function testDelete()
- {
- $db = $this->getConnection();
-
- $db->createCommand()->insert('yii2_test_rt_index', [
- 'title' => 'Test title',
- 'content' => 'Test content',
- 'type_id' => 2,
- 'id' => 1,
- ])->execute();
-
- $command = $db->createCommand()->delete('yii2_test_rt_index', 'id = 1');
- $this->assertEquals(1, $command->execute(), 'Unable to execute delete!');
-
- $rows = $db->createCommand('SELECT * FROM yii2_test_rt_index')->queryAll();
- $this->assertEquals(0, count($rows), 'Unable to delete record!');
- }
-
- /**
- * @depends testQuery
- */
- public function testCallSnippets()
- {
- $db = $this->getConnection();
-
- $query = 'pencil';
- $source = 'Some data sentence about ' . $query;
-
- $rows = $db->createCommand()->callSnippets('yii2_test_item_index', $source, $query)->queryColumn();
- $this->assertNotEmpty($rows, 'Unable to call snippets!');
- $this->assertContains('
' . $query . '', $rows[0], 'Query not present in the snippet!');
-
- $rows = $db->createCommand()->callSnippets('yii2_test_item_index', [$source], $query)->queryColumn();
- $this->assertNotEmpty($rows, 'Unable to call snippets for array source!');
-
- $options = [
- 'before_match' => '[',
- 'after_match' => ']',
- 'limit' => 20,
- ];
- $snippet = $db->createCommand()->callSnippets('yii2_test_item_index', $source, $query, $options)->queryScalar();
- $this->assertContains($options['before_match'] . $query . $options['after_match'], $snippet, 'Unable to apply options!');
- }
-
- /**
- * @depends testQuery
- */
- public function testCallKeywords()
- {
- $db = $this->getConnection();
-
- $text = 'table pencil';
- $rows = $db->createCommand()->callKeywords('yii2_test_item_index', $text)->queryAll();
- $this->assertNotEmpty($rows, 'Unable to call keywords!');
- $this->assertArrayHasKey('tokenized', $rows[0], 'No tokenized keyword!');
- $this->assertArrayHasKey('normalized', $rows[0], 'No normalized keyword!');
-
- $text = 'table pencil';
- $rows = $db->createCommand()->callKeywords('yii2_test_item_index', $text, true)->queryAll();
- $this->assertNotEmpty($rows, 'Unable to call keywords with statistic!');
- $this->assertArrayHasKey('docs', $rows[0], 'No docs!');
- $this->assertArrayHasKey('hits', $rows[0], 'No hits!');
- }
-}
diff --git a/tests/unit/extensions/sphinx/ConnectionTest.php b/tests/unit/extensions/sphinx/ConnectionTest.php
deleted file mode 100644
index 10bf232..0000000
--- a/tests/unit/extensions/sphinx/ConnectionTest.php
+++ /dev/null
@@ -1,42 +0,0 @@
-getConnection(false);
- $params = $this->sphinxConfig;
-
- $this->assertEquals($params['dsn'], $connection->dsn);
- $this->assertEquals($params['username'], $connection->username);
- $this->assertEquals($params['password'], $connection->password);
- }
-
- public function testOpenClose()
- {
- $connection = $this->getConnection(false, false);
-
- $this->assertFalse($connection->isActive);
- $this->assertEquals(null, $connection->pdo);
-
- $connection->open();
- $this->assertTrue($connection->isActive);
- $this->assertTrue($connection->pdo instanceof \PDO);
-
- $connection->close();
- $this->assertFalse($connection->isActive);
- $this->assertEquals(null, $connection->pdo);
-
- $connection = new Connection;
- $connection->dsn = 'unknown::memory:';
- $this->setExpectedException('yii\db\Exception');
- $connection->open();
- }
-}
diff --git a/tests/unit/extensions/sphinx/ExternalActiveRelationTest.php b/tests/unit/extensions/sphinx/ExternalActiveRelationTest.php
deleted file mode 100644
index 7d7dd1f..0000000
--- a/tests/unit/extensions/sphinx/ExternalActiveRelationTest.php
+++ /dev/null
@@ -1,87 +0,0 @@
-getConnection();
- ActiveRecordDb::$db = $this->getDbConnection();
- }
-
- // Tests :
-
- public function testFindLazy()
- {
- /* @var $article ArticleIndex */
- $article = ArticleIndex::findOne(['id' => 2]);
-
- // has one :
- $this->assertFalse($article->isRelationPopulated('source'));
- $source = $article->source;
- $this->assertTrue($article->isRelationPopulated('source'));
- $this->assertTrue($source instanceof ArticleDb);
- $this->assertEquals(1, count($article->relatedRecords));
-
- // has many :
- $this->assertFalse($article->isRelationPopulated('tags'));
- $tags = $article->tags;
- $this->assertTrue($article->isRelationPopulated('tags'));
- $this->assertEquals(count($article->tag), count($tags));
- $this->assertTrue($tags[0] instanceof TagDb);
- foreach ($tags as $tag) {
- $this->assertTrue(in_array($tag->id, $article->tag));
- }
- }
-
- public function testFindEager()
- {
- // has one :
- $articles = ArticleIndex::find()->with('source')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles[0]->isRelationPopulated('source'));
- $this->assertTrue($articles[1]->isRelationPopulated('source'));
- $this->assertTrue($articles[0]->source instanceof ArticleDb);
- $this->assertTrue($articles[1]->source instanceof ArticleDb);
-
- // has many :
- $articles = ArticleIndex::find()->with('tags')->all();
- $this->assertEquals(2, count($articles));
- $this->assertTrue($articles[0]->isRelationPopulated('tags'));
- $this->assertTrue($articles[1]->isRelationPopulated('tags'));
- foreach ($articles as $article) {
- $this->assertTrue($article->isRelationPopulated('tags'));
- $tags = $article->tags;
- $this->assertEquals(count($article->tag), count($tags));
- //var_dump($tags);
- $this->assertTrue($tags[0] instanceof TagDb);
- foreach ($tags as $tag) {
- $this->assertTrue(in_array($tag->id, $article->tag));
- }
- }
- }
-
- /**
- * @depends testFindEager
- */
- public function testFindWithSnippets()
- {
- $articles = ArticleIndex::find()
- ->match('about')
- ->with('source')
- ->snippetByModel()
- ->all();
- $this->assertEquals(2, count($articles));
- }
-}
diff --git a/tests/unit/extensions/sphinx/QueryTest.php b/tests/unit/extensions/sphinx/QueryTest.php
deleted file mode 100644
index 2fdf7fb..0000000
--- a/tests/unit/extensions/sphinx/QueryTest.php
+++ /dev/null
@@ -1,366 +0,0 @@
-select('*');
- $this->assertEquals(['*'], $query->select);
- $this->assertNull($query->distinct);
- $this->assertEquals(null, $query->selectOption);
-
- $query = new Query;
- $query->select('id, name', 'something')->distinct(true);
- $this->assertEquals(['id', 'name'], $query->select);
- $this->assertTrue($query->distinct);
- $this->assertEquals('something', $query->selectOption);
- }
-
- public function testFrom()
- {
- $query = new Query;
- $query->from('user');
- $this->assertEquals(['user'], $query->from);
- }
-
- public function testMatch()
- {
- $query = new Query;
- $match = 'test match';
- $query->match($match);
- $this->assertEquals($match, $query->match);
-
- $command = $query->createCommand($this->getConnection(false));
- $this->assertContains('MATCH(', $command->getSql(), 'No MATCH operator present!');
- $this->assertContains($match, $command->params, 'No match query among params!');
- }
-
- public function testWhere()
- {
- $query = new Query;
- $query->where('id = :id', [':id' => 1]);
- $this->assertEquals('id = :id', $query->where);
- $this->assertEquals([':id' => 1], $query->params);
-
- $query->andWhere('name = :name', [':name' => 'something']);
- $this->assertEquals(['and', 'id = :id', 'name = :name'], $query->where);
- $this->assertEquals([':id' => 1, ':name' => 'something'], $query->params);
-
- $query->orWhere('age = :age', [':age' => '30']);
- $this->assertEquals(['or', ['and', 'id = :id', 'name = :name'], 'age = :age'], $query->where);
- $this->assertEquals([':id' => 1, ':name' => 'something', ':age' => '30'], $query->params);
- }
-
- public function testFilterWhere()
- {
- // should work with hash format
- $query = new Query;
- $query->filterWhere([
- 'id' => 0,
- 'title' => ' ',
- 'author_ids' => [],
- ]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->andFilterWhere(['status' => null]);
- $this->assertEquals(['id' => 0], $query->where);
-
- $query->orFilterWhere(['name' => '']);
- $this->assertEquals(['id' => 0], $query->where);
-
- // should work with operator format
- $query = new Query;
- $condition = ['like', 'name', 'Alex'];
- $query->filterWhere($condition);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->orFilterWhere(['not between', 'id', null, null]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not in', 'id', []]);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or like', 'id', '']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['not like', 'id', ' ']);
- $this->assertEquals($condition, $query->where);
-
- $query->andFilterWhere(['or not like', 'id', null]);
- $this->assertEquals($condition, $query->where);
- }
-
- public function testFilterWhereRecursively()
- {
- $query = new Query();
- $query->filterWhere(['and', ['like', 'name', ''], ['like', 'title', ''], ['id' => 1], ['not', ['like', 'name', '']]]);
- $this->assertEquals(['and', ['id' => 1]], $query->where);
- }
-
- public function testGroup()
- {
- $query = new Query;
- $query->groupBy('team');
- $this->assertEquals(['team'], $query->groupBy);
-
- $query->addGroupBy('company');
- $this->assertEquals(['team', 'company'], $query->groupBy);
-
- $query->addGroupBy('age');
- $this->assertEquals(['team', 'company', 'age'], $query->groupBy);
- }
-
- public function testHaving()
- {
- $query = new Query;
- $query->having('id = :id', [':id' => 1]);
- $this->assertEquals('id = :id', $query->having);
- $this->assertEquals([':id' => 1], $query->params);
-
- $query->andHaving('name = :name', [':name' => 'something']);
- $this->assertEquals(['and', 'id = :id', 'name = :name'], $query->having);
- $this->assertEquals([':id' => 1, ':name' => 'something'], $query->params);
-
- $query->orHaving('age = :age', [':age' => '30']);
- $this->assertEquals(['or', ['and', 'id = :id', 'name = :name'], 'age = :age'], $query->having);
- $this->assertEquals([':id' => 1, ':name' => 'something', ':age' => '30'], $query->params);
- }
-
- public function testOrder()
- {
- $query = new Query;
- $query->orderBy('team');
- $this->assertEquals(['team' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('company');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy('age');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_ASC], $query->orderBy);
-
- $query->addOrderBy(['age' => SORT_DESC]);
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_DESC], $query->orderBy);
-
- $query->addOrderBy('age ASC, company DESC');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_DESC, 'age' => SORT_ASC], $query->orderBy);
- }
-
- public function testLimitOffset()
- {
- $query = new Query;
- $query->limit(10)->offset(5);
- $this->assertEquals(10, $query->limit);
- $this->assertEquals(5, $query->offset);
- }
-
- public function testWithin()
- {
- $query = new Query;
- $query->within('team');
- $this->assertEquals(['team' => SORT_ASC], $query->within);
-
- $query->addWithin('company');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC], $query->within);
-
- $query->addWithin('age');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_ASC], $query->within);
-
- $query->addWithin(['age' => SORT_DESC]);
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_ASC, 'age' => SORT_DESC], $query->within);
-
- $query->addWithin('age ASC, company DESC');
- $this->assertEquals(['team' => SORT_ASC, 'company' => SORT_DESC, 'age' => SORT_ASC], $query->within);
- }
-
- public function testOptions()
- {
- $query = new Query;
- $options = [
- 'cutoff' => 50,
- 'max_matches' => 50,
- ];
- $query->options($options);
- $this->assertEquals($options, $query->options);
-
- $newMaxMatches = $options['max_matches'] + 10;
- $query->addOptions(['max_matches' => $newMaxMatches]);
- $this->assertEquals($newMaxMatches, $query->options['max_matches']);
- }
-
- public function testRun()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('yii2_test_article_index')
- ->match('about')
- ->options([
- 'cutoff' => 50,
- 'field_weights' => [
- 'title' => 10,
- 'content' => 3,
- ],
- ])
- ->all($connection);
- $this->assertNotEmpty($rows);
- }
-
- /**
- * @depends testRun
- */
- public function testSnippet()
- {
- $connection = $this->getConnection();
-
- $match = 'about';
- $snippetPrefix = 'snippet#';
- $snippetCallback = function () use ($match, $snippetPrefix) {
- return [
- $snippetPrefix . '1: ' . $match,
- $snippetPrefix . '2: ' . $match,
- ];
- };
- $snippetOptions = [
- 'before_match' => '[',
- 'after_match' => ']',
- ];
-
- $query = new Query;
- $rows = $query->from('yii2_test_article_index')
- ->match($match)
- ->snippetCallback($snippetCallback)
- ->snippetOptions($snippetOptions)
- ->all($connection);
- $this->assertNotEmpty($rows);
- foreach ($rows as $row) {
- $this->assertContains($snippetPrefix, $row['snippet'], 'Snippet source not present!');
- $this->assertContains($snippetOptions['before_match'] . $match, $row['snippet'] . $snippetOptions['after_match'], 'Options not applied!');
- }
- }
-
- public function testCount()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $count = $query->from('yii2_test_article_index')
- ->match('about')
- ->count('*', $connection);
- $this->assertEquals(2, $count);
- }
-
- /**
- * @depends testRun
- */
- public function testWhereSpecialCharValue()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('yii2_test_article_index')
- ->andWhere(['author_id' => 'some"'])
- ->all($connection);
- $this->assertEmpty($rows);
- }
-
- /**
- * Data provider for [[testMatchSpecialCharValue()]]
- * @return array test data
- */
- public function dataProviderMatchSpecialCharValue()
- {
- return [
- ["'"],
- ['"'],
- ['@'],
- ['\\'],
- ['()'],
- ['<<<'],
- ['>>>'],
- ["\x00"],
- ["\n"],
- ["\r"],
- ["\x1a"],
- ['\\' . "'"],
- ['\\' . '"'],
- ];
- }
-
- /**
- * @dataProvider dataProviderMatchSpecialCharValue
- * @depends testRun
- *
- * @param string $char char to be tested
- *
- * @see https://github.com/yiisoft/yii2/issues/3668
- */
- public function testMatchSpecialCharValue($char)
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('yii2_test_article_index')
- ->match('about' . $char)
- ->all($connection);
- $this->assertTrue(is_array($rows)); // no query error
- }
-
- /**
- * @depends testMatchSpecialCharValue
- */
- public function testMatchComplex()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('yii2_test_article_index')
- ->match(new Expression(':match', ['match' => '@(content) ' . $connection->escapeMatchValue('about\\"')]))
- ->all($connection);
- $this->assertNotEmpty($rows);
- }
-
- /**
- * @depends testRun
- *
- * @see https://github.com/yiisoft/yii2/issues/4375
- */
- public function testRunOnDistributedIndex()
- {
- $connection = $this->getConnection();
-
- $query = new Query;
- $rows = $query->from('yii2_test_distributed')
- ->match('about')
- ->options([
- 'cutoff' => 50,
- 'field_weights' => [
- 'title' => 10,
- 'content' => 3,
- ],
- ])
- ->all($connection);
- $this->assertNotEmpty($rows);
- }
-}
diff --git a/tests/unit/extensions/sphinx/SchemaTest.php b/tests/unit/extensions/sphinx/SchemaTest.php
deleted file mode 100644
index 38d8c44..0000000
--- a/tests/unit/extensions/sphinx/SchemaTest.php
+++ /dev/null
@@ -1,83 +0,0 @@
-getConnection()->schema;
-
- $indexes = $schema->getIndexNames();
- $this->assertContains('yii2_test_article_index', $indexes);
- $this->assertContains('yii2_test_item_index', $indexes);
- $this->assertContains('yii2_test_rt_index', $indexes);
- }
-
- public function testGetIndexSchemas()
- {
- $schema = $this->getConnection()->schema;
-
- $indexes = $schema->getIndexSchemas();
- $this->assertEquals(count($schema->getIndexNames()), count($indexes));
- foreach ($indexes as $index) {
- $this->assertInstanceOf('yii\sphinx\IndexSchema', $index);
- }
- }
-
- public function testGetNonExistingIndexSchema()
- {
- $this->assertNull($this->getConnection()->schema->getIndexSchema('non_existing_index'));
- }
-
- public function testSchemaRefresh()
- {
- $schema = $this->getConnection()->schema;
-
- $schema->db->enableSchemaCache = true;
- $schema->db->schemaCache = new FileCache();
- $noCacheIndex = $schema->getIndexSchema('yii2_test_rt_index', true);
- $cachedIndex = $schema->getIndexSchema('yii2_test_rt_index', true);
- $this->assertEquals($noCacheIndex, $cachedIndex);
- }
-
- public function testGetPDOType()
- {
- $values = [
- [null, \PDO::PARAM_NULL],
- ['', \PDO::PARAM_STR],
- ['hello', \PDO::PARAM_STR],
- [0, \PDO::PARAM_INT],
- [1, \PDO::PARAM_INT],
- [1337, \PDO::PARAM_INT],
- [true, \PDO::PARAM_BOOL],
- [false, \PDO::PARAM_BOOL],
- [$fp = fopen(__FILE__, 'rb'), \PDO::PARAM_LOB],
- ];
-
- $schema = $this->getConnection()->schema;
-
- foreach ($values as $value) {
- $this->assertEquals($value[1], $schema->getPdoType($value[0]));
- }
- fclose($fp);
- }
-
- public function testIndexType()
- {
- $schema = $this->getConnection()->schema;
-
- $index = $schema->getIndexSchema('yii2_test_article_index');
- $this->assertEquals('local', $index->type);
- $this->assertFalse($index->isRuntime);
-
- $index = $schema->getIndexSchema('yii2_test_rt_index');
- $this->assertEquals('rt', $index->type);
- $this->assertTrue($index->isRuntime);
- }
-}
diff --git a/tests/unit/extensions/sphinx/SphinxTestCase.php b/tests/unit/extensions/sphinx/SphinxTestCase.php
deleted file mode 100644
index 98c621c..0000000
--- a/tests/unit/extensions/sphinx/SphinxTestCase.php
+++ /dev/null
@@ -1,162 +0,0 @@
- 'mysql:host=127.0.0.1;port=9306;',
- 'username' => '',
- 'password' => '',
- ];
- /**
- * @var Connection Sphinx connection instance.
- */
- protected $sphinx;
- /**
- * @var array Database connection configuration.
- */
- protected $dbConfig = [
- 'dsn' => 'mysql:host=127.0.0.1;',
- 'username' => '',
- 'password' => '',
- ];
- /**
- * @var \yii\db\Connection database connection instance.
- */
- protected $db;
-
- public static function setUpBeforeClass()
- {
- static::loadClassMap();
- }
-
- protected function setUp()
- {
- parent::setUp();
- if (!extension_loaded('pdo') || !extension_loaded('pdo_mysql')) {
- $this->markTestSkipped('pdo and pdo_mysql extension are required.');
- }
- $config = self::getParam('sphinx');
- if (!empty($config)) {
- $this->sphinxConfig = $config['sphinx'];
- $this->dbConfig = $config['db'];
- }
- // check whether sphinx is running and skip tests if not.
- if (preg_match('/host=([\w\d.]+)/i', $this->sphinxConfig['dsn'], $hm) && preg_match('/port=(\d+)/i', $this->sphinxConfig['dsn'], $pm)) {
- if (!@stream_socket_client($hm[1] . ':' . $pm[1], $errorNumber, $errorDescription, 0.5)) {
- $this->markTestSkipped('No Sphinx searchd running at ' . $hm[1] . ':' . $pm[1] . ' : ' . $errorNumber . ' - ' . $errorDescription);
- }
- }
- $this->mockApplication();
- static::loadClassMap();
- }
-
- protected function tearDown()
- {
- if ($this->sphinx) {
- $this->sphinx->close();
- }
- $this->destroyApplication();
- }
-
- /**
- * Adds sphinx extension files to [[Yii::$classPath]],
- * avoiding the necessity of usage Composer autoloader.
- */
- protected static function loadClassMap()
- {
- $baseNameSpace = 'yii/sphinx';
- $basePath = realpath(__DIR__. '/../../../../extensions/sphinx');
- $files = FileHelper::findFiles($basePath);
- foreach ($files as $file) {
- $classRelativePath = str_replace($basePath, '', $file);
- $classFullName = str_replace(['/', '.php'], ['\\', ''], $baseNameSpace . $classRelativePath);
- Yii::$classMap[$classFullName] = $file;
- }
- }
-
- /**
- * @param boolean $reset whether to clean up the test database
- * @param boolean $open whether to open test database
- * @return \yii\sphinx\Connection
- */
- public function getConnection($reset = false, $open = true)
- {
- if (!$reset && $this->sphinx) {
- return $this->sphinx;
- }
- $db = new Connection;
- $db->dsn = $this->sphinxConfig['dsn'];
- if (isset($this->sphinxConfig['username'])) {
- $db->username = $this->sphinxConfig['username'];
- $db->password = $this->sphinxConfig['password'];
- }
- if (isset($this->sphinxConfig['attributes'])) {
- $db->attributes = $this->sphinxConfig['attributes'];
- }
- if ($open) {
- $db->open();
- }
- $this->sphinx = $db;
-
- return $db;
- }
-
- /**
- * Truncates the runtime index.
- * @param string $indexName index name.
- */
- protected function truncateRuntimeIndex($indexName)
- {
- if ($this->sphinx) {
- $this->sphinx->createCommand('TRUNCATE RTINDEX ' . $indexName)->execute();
- }
- }
-
- /**
- * @param boolean $reset whether to clean up the test database
- * @param boolean $open whether to open and populate test database
- * @return \yii\db\Connection
- */
- public function getDbConnection($reset = true, $open = true)
- {
- if (!$reset && $this->db) {
- return $this->db;
- }
- $db = new \yii\db\Connection;
- $db->dsn = $this->dbConfig['dsn'];
- if (isset($this->dbConfig['username'])) {
- $db->username = $this->dbConfig['username'];
- $db->password = $this->dbConfig['password'];
- }
- if (isset($this->dbConfig['attributes'])) {
- $db->attributes = $this->dbConfig['attributes'];
- }
- if ($open) {
- $db->open();
- if (!empty($this->dbConfig['fixture'])) {
- $lines = explode(';', file_get_contents($this->dbConfig['fixture']));
- foreach ($lines as $line) {
- if (trim($line) !== '') {
- $db->pdo->exec($line);
- }
- }
- }
- }
- $this->db = $db;
-
- return $db;
- }
-}
diff --git a/tests/unit/extensions/swiftmailer/MailerTest.php b/tests/unit/extensions/swiftmailer/MailerTest.php
deleted file mode 100644
index e5236bf..0000000
--- a/tests/unit/extensions/swiftmailer/MailerTest.php
+++ /dev/null
@@ -1,125 +0,0 @@
-mockApplication([
- 'components' => [
- 'email' => $this->createTestEmailComponent()
- ]
- ]);
- }
-
- /**
- * @return Mailer test email component instance.
- */
- protected function createTestEmailComponent()
- {
- $component = new Mailer();
-
- return $component;
- }
-
- // Tests :
-
- public function testSetupTransport()
- {
- $mailer = new Mailer();
-
- $transport = \Swift_MailTransport::newInstance();
- $mailer->setTransport($transport);
- $this->assertEquals($transport, $mailer->getTransport(), 'Unable to setup transport!');
- }
-
- /**
- * @depends testSetupTransport
- */
- public function testConfigureTransport()
- {
- $mailer = new Mailer();
-
- $transportConfig = [
- 'class' => 'Swift_SmtpTransport',
- 'host' => 'localhost',
- 'username' => 'username',
- 'password' => 'password',
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertEquals($transportConfig['class'], get_class($transport), 'Invalid transport class!');
- $this->assertEquals($transportConfig['host'], $transport->getHost(), 'Invalid transport host!');
- }
-
- /**
- * @depends testConfigureTransport
- */
- public function testConfigureTransportConstruct()
- {
- $mailer = new Mailer();
-
- $class = 'Swift_SmtpTransport';
- $host = 'some.test.host';
- $port = 999;
- $transportConfig = [
- 'class' => $class,
- 'constructArgs' => [
- $host,
- $port,
- ],
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertEquals($class, get_class($transport), 'Invalid transport class!');
- $this->assertEquals($host, $transport->getHost(), 'Invalid transport host!');
- $this->assertEquals($port, $transport->getPort(), 'Invalid transport host!');
- }
-
- /**
- * @depends testConfigureTransportConstruct
- */
- public function testConfigureTransportWithPlugins()
- {
- $mailer = new Mailer();
-
- $pluginClass = 'Swift_Plugins_ThrottlerPlugin';
- $rate = 10;
-
- $transportConfig = [
- 'class' => 'Swift_SmtpTransport',
- 'plugins' => [
- [
- 'class' => $pluginClass,
- 'constructArgs' => [
- $rate,
- ],
- ],
- ],
- ];
- $mailer->setTransport($transportConfig);
- $transport = $mailer->getTransport();
- $this->assertTrue(is_object($transport), 'Unable to setup transport via config!');
- $this->assertContains(':' . $pluginClass . ':', print_r($transport, true), 'Plugin not added');
- }
-
- public function testGetSwiftMailer()
- {
- $mailer = new Mailer();
- $this->assertTrue(is_object($mailer->getSwiftMailer()), 'Unable to get Swift mailer instance!');
- }
-}
diff --git a/tests/unit/extensions/swiftmailer/MessageTest.php b/tests/unit/extensions/swiftmailer/MessageTest.php
deleted file mode 100644
index a0c88de..0000000
--- a/tests/unit/extensions/swiftmailer/MessageTest.php
+++ /dev/null
@@ -1,366 +0,0 @@
-mockApplication([
- 'components' => [
- 'mailer' => $this->createTestEmailComponent()
- ]
- ]);
- $filePath = $this->getTestFilePath();
- if (!file_exists($filePath)) {
- FileHelper::createDirectory($filePath);
- }
- }
-
- public function tearDown()
- {
- $filePath = $this->getTestFilePath();
- if (file_exists($filePath)) {
- FileHelper::removeDirectory($filePath);
- }
- }
-
- /**
- * @return string test file path.
- */
- protected function getTestFilePath()
- {
- return Yii::getAlias('@yiiunit/runtime') . DIRECTORY_SEPARATOR . basename(get_class($this)) . '_' . getmypid();
- }
-
- /**
- * @return Mailer test email component instance.
- */
- protected function createTestEmailComponent()
- {
- $component = new Mailer([
- 'useFileTransport' => true,
- ]);
-
- return $component;
- }
-
- /**
- * @return Message test message instance.
- */
- protected function createTestMessage()
- {
- return Yii::$app->get('mailer')->compose();
- }
-
- /**
- * Creates image file with given text.
- * @param string $fileName file name.
- * @param string $text text to be applied on image.
- * @return string image file full name.
- */
- protected function createImageFile($fileName = 'test.jpg', $text = 'Test Image')
- {
- if (!function_exists('imagecreatetruecolor')) {
- $this->markTestSkipped('GD lib required.');
- }
- $fileFullName = $this->getTestFilePath() . DIRECTORY_SEPARATOR . $fileName;
- $image = imagecreatetruecolor(120, 20);
- $textColor = imagecolorallocate($image, 233, 14, 91);
- imagestring($image, 1, 5, 5, $text, $textColor);
- imagejpeg($image, $fileFullName);
- imagedestroy($image);
-
- return $fileFullName;
- }
-
- /**
- * Finds the attachment object in the message.
- * @param Message $message message instance
- * @return null|\Swift_Mime_Attachment attachment instance.
- */
- protected function getAttachment(Message $message)
- {
- $messageParts = $message->getSwiftMessage()->getChildren();
- $attachment = null;
- foreach ($messageParts as $part) {
- if ($part instanceof \Swift_Mime_Attachment) {
- $attachment = $part;
- break;
- }
- }
-
- return $attachment;
- }
-
- // Tests :
-
- public function testGetSwiftMessage()
- {
- $message = new Message();
- $this->assertTrue(is_object($message->getSwiftMessage()), 'Unable to get Swift message!');
- }
-
- /**
- * @depends testGetSwiftMessage
- */
- public function testSetGet()
- {
- $message = new Message();
-
- $charset = 'utf-16';
- $message->setCharset($charset);
- $this->assertEquals($charset, $message->getCharset(), 'Unable to set charset!');
-
- $subject = 'Test Subject';
- $message->setSubject($subject);
- $this->assertEquals($subject, $message->getSubject(), 'Unable to set subject!');
-
- $from = 'from@somedomain.com';
- $message->setFrom($from);
- $this->assertContains($from, array_keys($message->getFrom()), 'Unable to set from!');
-
- $replyTo = 'reply-to@somedomain.com';
- $message->setReplyTo($replyTo);
- $this->assertContains($replyTo, array_keys($message->getReplyTo()), 'Unable to set replyTo!');
-
- $to = 'someuser@somedomain.com';
- $message->setTo($to);
- $this->assertContains($to, array_keys($message->getTo()), 'Unable to set to!');
-
- $cc = 'ccuser@somedomain.com';
- $message->setCc($cc);
- $this->assertContains($cc, array_keys($message->getCc()), 'Unable to set cc!');
-
- $bcc = 'bccuser@somedomain.com';
- $message->setBcc($bcc);
- $this->assertContains($bcc, array_keys($message->getBcc()), 'Unable to set bcc!');
- }
-
- /**
- * @depends testGetSwiftMessage
- */
- public function testSetupHeaders()
- {
- $charset = 'utf-16';
- $subject = 'Test Subject';
- $from = 'from@somedomain.com';
- $replyTo = 'reply-to@somedomain.com';
- $to = 'someuser@somedomain.com';
- $cc = 'ccuser@somedomain.com';
- $bcc = 'bccuser@somedomain.com';
-
- $messageString = $this->createTestMessage()
- ->setCharset($charset)
- ->setSubject($subject)
- ->setFrom($from)
- ->setReplyTo($replyTo)
- ->setTo($to)
- ->setCc($cc)
- ->setBcc($bcc)
- ->toString();
-
- $this->assertContains('charset=' . $charset, $messageString, 'Incorrect charset!');
- $this->assertContains('Subject: ' . $subject, $messageString, 'Incorrect "Subject" header!');
- $this->assertContains('From: ' . $from, $messageString, 'Incorrect "From" header!');
- $this->assertContains('Reply-To: ' . $replyTo, $messageString, 'Incorrect "Reply-To" header!');
- $this->assertContains('To: ' . $to, $messageString, 'Incorrect "To" header!');
- $this->assertContains('Cc: ' . $cc, $messageString, 'Incorrect "Cc" header!');
- $this->assertContains('Bcc: ' . $bcc, $messageString, 'Incorrect "Bcc" header!');
- }
-
- /**
- * @depends testGetSwiftMessage
- */
- public function testSend()
- {
- $message = $this->createTestMessage();
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Test');
- $message->setTextBody('Yii Swift Test body');
- $this->assertTrue($message->send());
- }
-
- /**
- * @depends testSend
- */
- public function testAttachFile()
- {
- $message = $this->createTestMessage();
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Attach File Test');
- $message->setTextBody('Yii Swift Attach File Test body');
- $fileName = __FILE__;
- $message->attach($fileName);
-
- $this->assertTrue($message->send());
-
- $attachment = $this->getAttachment($message);
- $this->assertTrue(is_object($attachment), 'No attachment found!');
- $this->assertContains($attachment->getFilename(), $fileName, 'Invalid file name!');
- }
-
- /**
- * @depends testSend
- */
- public function testAttachContent()
- {
- $message = $this->createTestMessage();
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Create Attachment Test');
- $message->setTextBody('Yii Swift Create Attachment Test body');
- $fileName = 'test.txt';
- $fileContent = 'Test attachment content';
- $message->attachContent($fileContent, ['fileName' => $fileName]);
-
- $this->assertTrue($message->send());
-
- $attachment = $this->getAttachment($message);
- $this->assertTrue(is_object($attachment), 'No attachment found!');
- $this->assertEquals($fileName, $attachment->getFilename(), 'Invalid file name!');
- }
-
- /**
- * @depends testSend
- */
- public function testEmbedFile()
- {
- $fileName = $this->createImageFile('embed_file.jpg', 'Embed Image File');
-
- $message = $this->createTestMessage();
-
- $cid = $message->embed($fileName);
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Embed File Test');
- $message->setHtmlBody('Embed image:
');
-
- $this->assertTrue($message->send());
-
- $attachment = $this->getAttachment($message);
- $this->assertTrue(is_object($attachment), 'No attachment found!');
- $this->assertContains($attachment->getFilename(), $fileName, 'Invalid file name!');
- }
-
- /**
- * @depends testSend
- */
- public function testEmbedContent()
- {
- $fileFullName = $this->createImageFile('embed_file.jpg', 'Embed Image File');
- $message = $this->createTestMessage();
-
- $fileName = basename($fileFullName);
- $contentType = 'image/jpeg';
- $fileContent = file_get_contents($fileFullName);
-
- $cid = $message->embedContent($fileContent, ['fileName' => $fileName, 'contentType' => $contentType]);
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Embed File Test');
- $message->setHtmlBody('Embed image:
');
-
- $this->assertTrue($message->send());
-
- $attachment = $this->getAttachment($message);
- $this->assertTrue(is_object($attachment), 'No attachment found!');
- $this->assertEquals($fileName, $attachment->getFilename(), 'Invalid file name!');
- $this->assertEquals($contentType, $attachment->getContentType(), 'Invalid content type!');
- }
-
- /**
- * @depends testSend
- */
- public function testSendAlternativeBody()
- {
- $message = $this->createTestMessage();
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Alternative Body Test');
- $message->setHtmlBody('
Yii Swift test HTML body');
- $message->setTextBody('Yii Swift test plain text body');
-
- $this->assertTrue($message->send());
-
- $messageParts = $message->getSwiftMessage()->getChildren();
- $textPresent = false;
- $htmlPresent = false;
- foreach ($messageParts as $part) {
- if (!($part instanceof \Swift_Mime_Attachment)) {
- /* @var $part \Swift_Mime_MimePart */
- if ($part->getContentType() == 'text/plain') {
- $textPresent = true;
- }
- if ($part->getContentType() == 'text/html') {
- $htmlPresent = true;
- }
- }
- }
- $this->assertTrue($textPresent, 'No text!');
- $this->assertTrue($htmlPresent, 'No HTML!');
- }
-
- /**
- * @depends testGetSwiftMessage
- */
- public function testSerialize()
- {
- $message = $this->createTestMessage();
-
- $message->setTo($this->testEmailReceiver);
- $message->setFrom('someuser@somedomain.com');
- $message->setSubject('Yii Swift Alternative Body Test');
- $message->setTextBody('Yii Swift test plain text body');
-
- $serializedMessage = serialize($message);
- $this->assertNotEmpty($serializedMessage, 'Unable to serialize message!');
-
- $unserializedMessaage = unserialize($serializedMessage);
- $this->assertEquals($message, $unserializedMessaage, 'Unable to unserialize message!');
- }
-
- /**
- * @depends testSendAlternativeBody
- */
- public function testAlternativeBodyCharset()
- {
- $message = $this->createTestMessage();
- $charset = 'windows-1251';
- $message->setCharset($charset);
-
- $message->setTextBody('some text');
- $message->setHtmlBody('some html');
- $content = $message->toString();
- $this->assertEquals(2, substr_count($content, $charset), 'Wrong charset for alternative body.');
-
- $message->setTextBody('some text override');
- $content = $message->toString();
- $this->assertEquals(2, substr_count($content, $charset), 'Wrong charset for alternative body override.');
- }
-}
diff --git a/tests/unit/extensions/twig/ViewRendererTest.php b/tests/unit/extensions/twig/ViewRendererTest.php
deleted file mode 100644
index cd13c81..0000000
--- a/tests/unit/extensions/twig/ViewRendererTest.php
+++ /dev/null
@@ -1,161 +0,0 @@
-
- * @author Carsten Brandt
- */
-class ViewRendererTest extends DatabaseTestCase
-{
- protected $driverName = 'sqlite';
-
- protected function setUp()
- {
- parent::setUp();
- $this->mockWebApplication();
- }
-
- protected function tearDown()
- {
- parent::tearDown();
- FileHelper::removeDirectory(Yii::getAlias('@runtime/assets'));
- }
-
- /**
- * https://github.com/yiisoft/yii2/issues/1755
- */
- public function testLayoutAssets()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/layout.twig');
-
- $this->assertEquals(1, preg_match('#\s*#', $content), 'Content does not contain the jquery js:' . $content);
- }
-
- public function testAppGlobal()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/layout.twig');
-
- $this->assertEquals(1, preg_match('##', $content), 'Content does not contain charset:' . $content);
- }
-
- /**
- * https://github.com/yiisoft/yii2/issues/3877
- */
- public function testLexerOptions()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/comments.twig');
-
- $this->assertFalse(strpos($content, 'CUSTOM_LEXER_TWIG_COMMENT'), 'Custom comment lexerOptions were not applied: ' . $content);
- $this->assertTrue(strpos($content, 'DEFAULT_TWIG_COMMENT') !== false, 'Default comment style was not modified via lexerOptions:' . $content);
- }
-
- public function testForm()
- {
- $view = $this->mockView();
- $model = new Singer();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/form.twig', ['model' => $model]);
- $this->assertEquals(1, preg_match('##s', $content), 'Content does not contain form:' . $content);
- }
-
- public function testCalls()
- {
- $view = $this->mockView();
- $model = new Singer();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/calls.twig', ['model' => $model]);
- $this->assertFalse(strpos($content, 'silence'), 'silence should not be echoed when void() used: ' . $content);
- $this->assertTrue(strpos($content, 'echo') !== false, 'echo should be there:' . $content);
- $this->assertTrue(strpos($content, 'variable') !== false, 'variable should be there:' . $content);
- }
-
- public function testInheritance()
- {
- $view = $this->mockView();
- $content = $view->renderFile('@yiiunit/extensions/twig/views/extends2.twig');
- $this->assertTrue(strpos($content, 'Hello, I\'m inheritance test!') !== false, 'Hello, I\'m inheritance test! should be there:' . $content);
- $this->assertTrue(strpos($content, 'extends2 block') !== false, 'extends2 block should be there:' . $content);
- $this->assertFalse(strpos($content, 'extends1 block') !== false, 'extends1 block should not be there:' . $content);
-
- $content = $view->renderFile('@yiiunit/extensions/twig/views/extends3.twig');
- $this->assertTrue(strpos($content, 'Hello, I\'m inheritance test!') !== false, 'Hello, I\'m inheritance test! should be there:' . $content);
- $this->assertTrue(strpos($content, 'extends3 block') !== false, 'extends3 block should be there:' . $content);
- $this->assertFalse(strpos($content, 'extends1 block') !== false, 'extends1 block should not be there:' . $content);
- }
-
- public function testChangeTitle()
- {
- $view = $this->mockView();
- $view->title = 'Original title';
-
- $content = $view->renderFile('@yiiunit/extensions/twig/views/changeTitle.twig');
- $this->assertTrue(strpos($content, 'New title') !== false, 'New title should be there:' . $content);
- $this->assertFalse(strpos($content, 'Original title') !== false, 'Original title should not be there:' . $content);
- }
-
- public function testNullsInAr()
- {
- $view = $this->mockView();
- $order = new Order();
- $order::$db = $this->getConnection();
- $view->renderFile('@yiiunit/extensions/twig/views/nulls.twig', ['order' => $order]);
- }
-
- /**
- * Mocks view instance
- * @return View
- */
- protected function mockView()
- {
- return new View([
- 'renderers' => [
- 'twig' => [
- 'class' => 'yii\twig\ViewRenderer',
- 'options' => [
- 'cache' => false,
- ],
- 'globals' => [
- 'html' => '\yii\helpers\Html',
- 'pos_begin' => View::POS_BEGIN,
- ],
- 'functions' => [
- 't' => '\Yii::t',
- 'json_encode' => '\yii\helpers\Json::encode',
- ],
- 'lexerOptions' => [
- 'tag_comment' => [ '{*', '*}' ],
- ],
- ],
- ],
- 'assetManager' => $this->mockAssetManager(),
- ]);
- }
-
- /**
- * Mocks asset manager
- * @return AssetManager
- */
- protected function mockAssetManager()
- {
- $assetDir = Yii::getAlias('@runtime/assets');
- if (!is_dir($assetDir)) {
- mkdir($assetDir, 0777, true);
- }
-
- return new AssetManager([
- 'basePath' => $assetDir,
- 'baseUrl' => '/assets',
- ]);
- }
-}
diff --git a/tests/unit/extensions/twig/views/calls.twig b/tests/unit/extensions/twig/views/calls.twig
deleted file mode 100644
index 474512a..0000000
--- a/tests/unit/extensions/twig/views/calls.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{{ json_encode('echo') | raw }}
-{{ void(json_encode('silence')) }}
-
-{% set var = json_encode('variable') %}
-{{ json_encode(var) | raw }}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/changeTitle.twig b/tests/unit/extensions/twig/views/changeTitle.twig
deleted file mode 100644
index bfa62a4..0000000
--- a/tests/unit/extensions/twig/views/changeTitle.twig
+++ /dev/null
@@ -1,3 +0,0 @@
-{{ set(this, 'title', 'New title') }}
-
-{{ this.title }}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/comments.twig b/tests/unit/extensions/twig/views/comments.twig
deleted file mode 100644
index a0ee4e1..0000000
--- a/tests/unit/extensions/twig/views/comments.twig
+++ /dev/null
@@ -1,2 +0,0 @@
-{# DEFAULT_TWIG_COMMENT #}
-{* CUSTOM_LEXER_TWIG_COMMENT *}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/extends1.twig b/tests/unit/extensions/twig/views/extends1.twig
deleted file mode 100644
index 78b7e79..0000000
--- a/tests/unit/extensions/twig/views/extends1.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-Hello, I'm inheritance test!
-
-{% block test %}
-extends1 block
-{% endblock %}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/extends2.twig b/tests/unit/extensions/twig/views/extends2.twig
deleted file mode 100644
index b230a1d..0000000
--- a/tests/unit/extensions/twig/views/extends2.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends "extends1.twig" %}
-
-{% block test %}
-extends2 block
-{% endblock %}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/extends3.twig b/tests/unit/extensions/twig/views/extends3.twig
deleted file mode 100644
index 1870ddf..0000000
--- a/tests/unit/extensions/twig/views/extends3.twig
+++ /dev/null
@@ -1,5 +0,0 @@
-{% extends "@yiiunit/extensions/twig/views/extends1.twig" %}
-
-{% block test %}
-extends3 block
-{% endblock %}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/form.twig b/tests/unit/extensions/twig/views/form.twig
deleted file mode 100644
index 1d0e00f..0000000
--- a/tests/unit/extensions/twig/views/form.twig
+++ /dev/null
@@ -1,18 +0,0 @@
-{{ use('yii/widgets/ActiveForm') }}
-
-{% set form = active_form_begin({
- 'id': 'login-form',
- 'action' : '/form-handler',
- 'options': {
- 'class': 'form-horizontal',
- }
-}) %}
- {{ form.field(model, 'firstName') | raw }}
-
-{{ active_form_end() }}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/layout.twig b/tests/unit/extensions/twig/views/layout.twig
deleted file mode 100644
index 9c50a07..0000000
--- a/tests/unit/extensions/twig/views/layout.twig
+++ /dev/null
@@ -1,16 +0,0 @@
-{{ use('yii/web/JqueryAsset') }}
-{{ register_jquery_asset() }}
-{{ begin_page() }}
-
-
-
-
- {{ html.encode(this.title) }}
- {{ head() }}
-
-
-{{ begin_body() }}
- body
-{{ end_body() }}
-
-{{ end_page() }}
\ No newline at end of file
diff --git a/tests/unit/extensions/twig/views/nulls.twig b/tests/unit/extensions/twig/views/nulls.twig
deleted file mode 100644
index bd81f1d..0000000
--- a/tests/unit/extensions/twig/views/nulls.twig
+++ /dev/null
@@ -1 +0,0 @@
-{{ order.customer }}
\ No newline at end of file
diff --git a/tests/unit/framework/base/SecurityTest.php b/tests/unit/framework/base/SecurityTest.php
deleted file mode 100644
index 2596277..0000000
--- a/tests/unit/framework/base/SecurityTest.php
+++ /dev/null
@@ -1,352 +0,0 @@
-security = new ExposedSecurity();
- $this->security->derivationIterations = 1000; // speed up test running
- }
-
- // Tests :
-
- public function testHashData()
- {
- $data = 'known data';
- $key = 'secret';
- $hashedData = $this->security->hashData($data, $key);
- $this->assertFalse($data === $hashedData);
- $this->assertEquals($data, $this->security->validateData($hashedData, $key));
- $hashedData[strlen($hashedData) - 1] = 'A';
- $this->assertFalse($this->security->validateData($hashedData, $key));
- }
-
- /**
- * Data provider for [[testPasswordHash()]]
- * @return array test data
- */
- public function dataProviderPasswordHash()
- {
- return [
- [
- 'crypt',
- false
- ],
- [
- 'password_hash',
- !function_exists('password_hash')
- ],
- ];
- }
-
- /**
- * @dataProvider dataProviderPasswordHash
- *
- * @param string $passwordHashStrategy
- * @param boolean $isSkipped
- */
- public function testPasswordHash($passwordHashStrategy, $isSkipped)
- {
- if ($isSkipped) {
- $this->markTestSkipped("Unable to test '{$passwordHashStrategy}' password hash strategy");
- return;
- }
- $this->security->passwordHashStrategy = $passwordHashStrategy;
-
- $password = 'secret';
- $hash = $this->security->generatePasswordHash($password);
- $this->assertTrue($this->security->validatePassword($password, $hash));
- $this->assertFalse($this->security->validatePassword('test', $hash));
- }
-
- public function testEncryptByPassword()
- {
- $data = 'known data';
- $key = 'secret';
-
- $encryptedData = $this->security->encryptByPassword($data, $key);
- $this->assertFalse($data === $encryptedData);
- $decryptedData = $this->security->decryptByPassword($encryptedData, $key);
- $this->assertEquals($data, $decryptedData);
-
- $tampered = $encryptedData;
- $tampered[20] = ~$tampered[20];
- $decryptedData = $this->security->decryptByPassword($tampered, $key);
- $this->assertTrue(false === $decryptedData);
- }
-
- public function testEncryptByKey()
- {
- $data = 'known data';
- $key = $this->security->generateRandomKey(80);
-
- $encryptedData = $this->security->encryptByKey($data, $key);
- $this->assertFalse($data === $encryptedData);
- $decryptedData = $this->security->decryptByKey($encryptedData, $key);
- $this->assertEquals($data, $decryptedData);
-
- $encryptedData = $this->security->encryptByKey($data, $key, $key);
- $decryptedData = $this->security->decryptByKey($encryptedData, $key, $key);
- $this->assertEquals($data, $decryptedData);
-
- $tampered = $encryptedData;
- $tampered[20] = ~$tampered[20];
- $decryptedData = $this->security->decryptByKey($tampered, $key);
- $this->assertTrue(false === $decryptedData);
-
- $decryptedData = $this->security->decryptByKey($encryptedData, $key, $key . "\0");
- $this->assertTrue(false === $decryptedData);
- }
-
- public function testGenerateRandomKey()
- {
- $length = 21;
- $key = $this->security->generateRandomKey($length);
- $this->assertEquals($length, strlen($key));
- }
-
- public function testGenerateRandomString()
- {
- $length = 21;
- $key = $this->security->generateRandomString($length);
- $this->assertEquals($length, strlen($key));
- $this->assertEquals(1, preg_match('/[A-Za-z0-9_-]+/', $key));
- }
-
- public function dataProviderPbkdf2()
- {
- return [
- [
- 'sha1',
- 'password',
- 'salt',
- 1,
- 20,
- '0c60c80f961f0e71f3a9b524af6012062fe037a6'
- ],
- [
- 'sha1',
- 'password',
- 'salt',
- 2,
- 20,
- 'ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957'
- ],
- [
- 'sha1',
- 'password',
- 'salt',
- 4096,
- 20,
- '4b007901b765489abead49d926f721d065a429c1'
- ],
- [
- 'sha1',
- 'password',
- 'salt',
- 16777216,
- 20,
- 'eefe3d61cd4da4e4e9945b3d6ba2158c2634e984'
- ],
- [
- 'sha1',
- 'passwordPASSWORDpassword',
- 'saltSALTsaltSALTsaltSALTsaltSALTsalt',
- 4096,
- 25,
- '3d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038'
- ],
- [
- 'sha1',
- "pass\0word",
- "sa\0lt",
- 4096,
- 16,
- '56fa6aa75548099dcc37d7f03425e0c3'
- ],
- [
- 'sha256',
- 'password',
- 'salt',
- 1,
- 20,
- '120fb6cffcf8b32c43e7225256c4f837a86548c9'
- ],
- [
- 'sha256',
- "pass\0word",
- "sa\0lt",
- 4096,
- 32,
- '89b69d0516f829893c696226650a86878c029ac13ee276509d5ae58b6466a724'
- ],
- [
- 'sha256',
- 'passwordPASSWORDpassword',
- 'saltSALTsaltSALTsaltSALTsaltSALTsalt',
- 4096,
- 40,
- '348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9'
- ],
- ];
- }
-
- /**
- * @dataProvider dataProviderPbkdf2
- *
- * @param string $hash
- * @param string $password
- * @param string $salt
- * @param integer $iterations
- * @param integer $length
- * @param string $okm
- */
- public function testPbkdf2($hash, $password, $salt, $iterations, $length, $okm)
- {
- $this->security->derivationIterations = $iterations;
- $DK = $this->security->pbkdf2($hash, $password, $salt, $iterations, $length);
- $this->assertEquals($okm, bin2hex($DK));
- }
-
- public function dataProviderDeriveKey()
- {
- // See Appendix A in https://tools.ietf.org/html/rfc5869
- return [
- [
- 'Hash' => 'sha256',
- 'IKM' => '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b',
- 'salt' => '000102030405060708090a0b0c',
- 'info' => 'f0f1f2f3f4f5f6f7f8f9',
- 'L' => 42,
- 'PRK' => '077709362c2e32df0ddc3f0dc47bba6390b6c73bb50f9c3122ec844ad7c2b3e5',
- 'OKM' => '3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865',
- ],
- [
- 'Hash' => 'sha256',
- 'IKM' => '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f',
- 'salt' => '606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf',
- 'info' => 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff',
- 'L' => 82,
- 'PRK' => '06a6b88c5853361a06104c9ceb35b45cef760014904671014a193f40c15fc244',
- 'OKM' => 'b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87',
- ],
- [
- 'Hash' => 'sha256',
- 'IKM' => '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b',
- 'salt' => '',
- 'info' => '',
- 'L' => 42,
- 'PRK' => '19ef24a32c717b167f33a91d6f648bdf96596776afdb6377ac434c1c293ccb04',
- 'OKM' => '8da4e775a563c18f715f802a063c5a31b8a11f5c5ee1879ec3454e5f3c738d2d9d201395faa4b61a96c8',
- ],
- [
- 'Hash' => 'sha1',
- 'IKM' => '0b0b0b0b0b0b0b0b0b0b0b',
- 'salt' => '000102030405060708090a0b0c',
- 'info' => 'f0f1f2f3f4f5f6f7f8f9',
- 'L' => 42,
- 'PRK' => '9b6c18c432a7bf8f0e71c8eb88f4b30baa2ba243',
- 'OKM' => '085a01ea1b10f36933068b56efa5ad81a4f14b822f5b091568a9cdd4f155fda2c22e422478d305f3f896',
- ],
- [
- 'Hash' => 'sha1',
- 'IKM' => '000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f',
- 'salt' => '606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf',
- 'info' => 'b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff',
- 'L' => 82,
- 'PRK' => '8adae09a2a307059478d309b26c4115a224cfaf6',
- 'OKM' => '0bd770a74d1160f7c9f12cd5912a06ebff6adcae899d92191fe4305673ba2ffe8fa3f1a4e5ad79f3f334b3b202b2173c486ea37ce3d397ed034c7f9dfeb15c5e927336d0441f4c4300e2cff0d0900b52d3b4',
- ],
- [
- 'Hash' => 'sha1',
- 'IKM' => '0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b',
- 'salt' => '',
- 'info' => '',
- 'L' => 42,
- 'PRK' => 'da8c8a73c7fa77288ec6f5e7c297786aa0d32d01',
- 'OKM' => '0ac1af7002b3d761d1e55298da9d0506b9ae52057220a306e07b6b87e8df21d0ea00033de03984d34918',
- ],
- [
- 'Hash' => 'sha1',
- 'IKM' => '0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c',
- 'salt' => null,
- 'info' => '',
- 'L' => 42,
- 'PRK' => '2adccada18779e7c2077ad2eb19d3f3e731385dd',
- 'OKM' => '2c91117204d745f3500d636a62f64f0ab3bae548aa53d423b0d1f27ebba6f5e5673a081d70cce7acfc48',
- ]
- ];
- }
-
- /**
- * @dataProvider dataProviderDeriveKey
- *
- * @param string $hash
- * @param string $ikm
- * @param string $salt
- * @param string $info
- * @param integer $l
- * @param string $prk
- * @param string $okm
- */
- public function testHkdf($hash, $ikm, $salt, $info, $l, $prk, $okm)
- {
- $dk = $this->security->hkdf($hash, hex2bin($ikm), hex2bin($salt), hex2bin($info), $l);
- $this->assertEquals($okm, bin2hex($dk));
- }
-
- public function dataProviderCompareStrings()
- {
- return [
- ["", ""],
- [false, ""],
- [null, ""],
- [0, ""],
- [0.00, ""],
- ["", null],
- ["", false],
- ["", 0],
- ["", "\0"],
- ["\0", ""],
- ["\0", "\0"],
- ["0", "\0"],
- [0, "\0"],
- ["user", "User"],
- ["password", "password"],
- ["password", "passwordpassword"],
- ["password1", "password"],
- ["password", "password2"],
- ["", "password"],
- ["password", ""],
- ];
- }
-
- /**
- * @dataProvider dataProviderCompareStrings
- *
- * @param $expected
- * @param $actual
- */
- public function testCompareStrings($expected, $actual)
- {
- $this->assertEquals(strcmp($expected, $actual) === 0, $this->security->compareString($expected, $actual));
- }
-}
\ No newline at end of file
diff --git a/tests/unit/framework/helpers/JsonTest.php b/tests/unit/framework/helpers/JsonTest.php
deleted file mode 100644
index ba21cf4..0000000
--- a/tests/unit/framework/helpers/JsonTest.php
+++ /dev/null
@@ -1,68 +0,0 @@
-assertSame('"1"', Json::encode($data));
-
- // simple array encoding
- $data = [1, 2];
- $this->assertSame('[1,2]', Json::encode($data));
- $data = ['a' => 1, 'b' => 2];
- $this->assertSame('{"a":1,"b":2}', Json::encode($data));
-
- // simple object encoding
- $data = new \stdClass();
- $data->a = 1;
- $data->b = 2;
- $this->assertSame('{"a":1,"b":2}', Json::encode($data));
-
- // expression encoding
- $expression = 'function () {}';
- $data = new JsExpression($expression);
- $this->assertSame($expression, Json::encode($data));
-
- // complex data
- $expression1 = 'function (a) {}';
- $expression2 = 'function (b) {}';
- $data = [
- 'a' => [
- 1, new JsExpression($expression1)
- ],
- 'b' => new JsExpression($expression2),
- ];
- $this->assertSame("{\"a\":[1,$expression1],\"b\":$expression2}", Json::encode($data));
-
- // https://github.com/yiisoft/yii2/issues/957
- $data = (object) null;
- $this->assertSame('{}', Json::encode($data));
- }
-
- public function testDecode()
- {
- // basic data decoding
- $json = '"1"';
- $this->assertSame('1', Json::decode($json));
-
- // array decoding
- $json = '{"a":1,"b":2}';
- $this->assertSame(['a' => 1, 'b' => 2], Json::decode($json));
-
- // exception
- $json = '{"a":1,"b":2';
- $this->setExpectedException('yii\base\InvalidParamException');
- Json::decode($json);
- }
-}
diff --git a/tests/unit/framework/validators/DateValidatorTest.php b/tests/unit/framework/validators/DateValidatorTest.php
deleted file mode 100644
index f438ac1..0000000
--- a/tests/unit/framework/validators/DateValidatorTest.php
+++ /dev/null
@@ -1,183 +0,0 @@
-mockApplication([
- 'timeZone' => 'UTC',
- 'language' => 'ru-RU',
- ]);
- }
-
- protected function tearDown()
- {
- parent::tearDown();
- IntlTestHelper::resetIntlStatus();
- }
-
- public function testEnsureMessageIsSet()
- {
- $val = new DateValidator;
- $this->assertTrue($val->message !== null && strlen($val->message) > 1);
- }
-
- public function testIntlValidateValue()
- {
- $this->testValidateValue();
-
- $this->mockApplication([
- 'language' => 'en-GB',
- 'components' => [
- 'formatter' => [
- 'dateFormat' => 'short',
- ]
- ]
- ]);
- $val = new DateValidator();
- $this->assertTrue($val->validate('31/5/2017'));
- $this->assertFalse($val->validate('5/31/2017'));
- $val = new DateValidator(['format' => 'short', 'locale' => 'en-GB']);
- $this->assertTrue($val->validate('31/5/2017'));
- $this->assertFalse($val->validate('5/31/2017'));
-
- $this->mockApplication([
- 'language' => 'de-DE',
- 'components' => [
- 'formatter' => [
- 'dateFormat' => 'short',
- ]
- ]
- ]);
- $val = new DateValidator();
- $this->assertTrue($val->validate('31.5.2017'));
- $this->assertFalse($val->validate('5.31.2017'));
- $val = new DateValidator(['format' => 'short', 'locale' => 'de-DE']);
- $this->assertTrue($val->validate('31.5.2017'));
- $this->assertFalse($val->validate('5.31.2017'));
- }
-
- public function testValidateValue()
- {
- // test PHP format
- $val = new DateValidator(['format' => 'php:Y-m-d']);
- $this->assertFalse($val->validate('3232-32-32'));
- $this->assertTrue($val->validate('2013-09-13'));
- $this->assertFalse($val->validate('31.7.2013'));
- $this->assertFalse($val->validate('31-7-2013'));
- $this->assertFalse($val->validate('asdasdfasfd'));
- $this->assertFalse($val->validate('20121212'));
- $this->assertFalse($val->validate(''));
- $this->assertFalse($val->validate(time()));
- $val->format = 'php:U';
- $this->assertTrue($val->validate(time()));
- $val->format = 'php:d.m.Y';
- $this->assertTrue($val->validate('31.7.2013'));
- $val->format = 'php:Y-m-!d H:i:s';
- $this->assertTrue($val->validate('2009-02-15 15:16:17'));
-
- // test ICU format
- $val = new DateValidator(['format' => 'yyyy-MM-dd']);
- $this->assertFalse($val->validate('3232-32-32'));
- $this->assertTrue($val->validate('2013-09-13'));
- $this->assertFalse($val->validate('31.7.2013'));
- $this->assertFalse($val->validate('31-7-2013'));
- $this->assertFalse($val->validate('20121212'));
- $this->assertFalse($val->validate('asdasdfasfd'));
- $this->assertFalse($val->validate(''));
- $this->assertFalse($val->validate(time()));
- $val->format = 'dd.MM.yyyy';
- $this->assertTrue($val->validate('31.7.2013'));
- $val->format = 'yyyy-MM-dd HH:mm:ss';
- $this->assertTrue($val->validate('2009-02-15 15:16:17'));
- }
-
- public function testIntlValidateAttributePHPFormat()
- {
- $this->testValidateAttributePHPFormat();
- }
-
- public function testValidateAttributePHPFormat()
- {
- // error-array-add
- $val = new DateValidator(['format' => 'php:Y-m-d']);
- $model = new FakedValidationModel;
- $model->attr_date = '2013-09-13';
- $val->validateAttribute($model, 'attr_date');
- $this->assertFalse($model->hasErrors('attr_date'));
- $model = new FakedValidationModel;
- $model->attr_date = '1375293913';
- $val->validateAttribute($model, 'attr_date');
- $this->assertTrue($model->hasErrors('attr_date'));
- //// timestamp attribute
- $val = new DateValidator(['format' => 'php:Y-m-d', 'timestampAttribute' => 'attr_timestamp']);
- $model = new FakedValidationModel;
- $model->attr_date = '2013-09-13';
- $model->attr_timestamp = true;
- $val->validateAttribute($model, 'attr_date');
- $this->assertFalse($model->hasErrors('attr_date'));
- $this->assertFalse($model->hasErrors('attr_timestamp'));
- $this->assertEquals(
- mktime(0, 0, 0, 9, 13, 2013), // 2013-09-13
-// DateTime::createFromFormat('Y-m-d', '2013-09-13')->getTimestamp(),
- $model->attr_timestamp
- );
- $val = new DateValidator(['format' => 'php:Y-m-d']);
- $model = FakedValidationModel::createWithAttributes(['attr_date' => []]);
- $val->validateAttribute($model, 'attr_date');
- $this->assertTrue($model->hasErrors('attr_date'));
-
- }
-
- public function testIntlValidateAttributeICUFormat()
- {
- $this->testValidateAttributeICUFormat();
- }
-
- public function testValidateAttributeICUFormat()
- {
- // error-array-add
- $val = new DateValidator(['format' => 'yyyy-MM-dd']);
- $model = new FakedValidationModel;
- $model->attr_date = '2013-09-13';
- $val->validateAttribute($model, 'attr_date');
- $this->assertFalse($model->hasErrors('attr_date'));
- $model = new FakedValidationModel;
- $model->attr_date = '1375293913';
- $val->validateAttribute($model, 'attr_date');
- $this->assertTrue($model->hasErrors('attr_date'));
- //// timestamp attribute
- $val = new DateValidator(['format' => 'yyyy-MM-dd', 'timestampAttribute' => 'attr_timestamp']);
- $model = new FakedValidationModel;
- $model->attr_date = '2013-09-13';
- $model->attr_timestamp = true;
- $val->validateAttribute($model, 'attr_date');
- $this->assertFalse($model->hasErrors('attr_date'));
- $this->assertFalse($model->hasErrors('attr_timestamp'));
- $this->assertEquals(
- mktime(0, 0, 0, 9, 13, 2013), // 2013-09-13
-// DateTime::createFromFormat('Y-m-d', '2013-09-13')->getTimestamp(),
- $model->attr_timestamp
- );
- $val = new DateValidator(['format' => 'yyyy-MM-dd']);
- $model = FakedValidationModel::createWithAttributes(['attr_date' => []]);
- $val->validateAttribute($model, 'attr_date');
- $this->assertTrue($model->hasErrors('attr_date'));
-
- }
-}
diff --git a/tests/web/app/index.php b/tests/web/app/index.php
deleted file mode 100644
index 72d3189..0000000
--- a/tests/web/app/index.php
+++ /dev/null
@@ -1,6 +0,0 @@
-run();
diff --git a/tests/web/app/protected/config/main.php b/tests/web/app/protected/config/main.php
deleted file mode 100644
index 0b67a5f..0000000
--- a/tests/web/app/protected/config/main.php
+++ /dev/null
@@ -1,3 +0,0 @@
- 'item 1',
- 'value 2' => 'item 2',
- 'value 3' => 'item 3',
- ], isset($_POST['test']) ? $_POST['test'] : null,
- function ($index, $label, $name, $value, $checked) {
- return Html::label(
- $label . ' ' . Html::checkbox($name, $value, $checked),
- null, ['class' => 'inline checkbox']
- );
- });
- echo Html::submitButton();
- echo Html::endForm();
- print_r($_POST);
- }
-}
diff --git a/tests/web/app/protected/views/site/index.php b/tests/web/app/protected/views/site/index.php
deleted file mode 100644
index cc86af6..0000000
--- a/tests/web/app/protected/views/site/index.php
+++ /dev/null
@@ -1,8 +0,0 @@
-