From 3ff91018cc5ad371d71368ecb7c5940e912d0d87 Mon Sep 17 00:00:00 2001 From: Min-Soo Kim Date: Sun, 27 Dec 2020 21:14:51 +0900 Subject: [PATCH] =?UTF-8?q?Add=20unit=20test=20+=20=ED=86=B5=ED=95=A9?= =?UTF-8?q?=EA=B2=80=EC=83=89=20=ED=82=A4=EC=9B=8C=EB=93=9C=20=EA=B8=80?= =?UTF-8?q?=EC=9E=90=20=EC=88=98=20=EC=A0=9C=ED=95=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration_search.view.php | 4 ++-- tests/_data/dbquery/selectTest3.xml | 24 +++++++++++++++++++ .../framework/parsers/DBQueryParserTest.php | 14 +++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 tests/_data/dbquery/selectTest3.xml diff --git a/modules/integration_search/integration_search.view.php b/modules/integration_search/integration_search.view.php index 2b9ec9b5e..1add46f55 100644 --- a/modules/integration_search/integration_search.view.php +++ b/modules/integration_search/integration_search.view.php @@ -115,9 +115,9 @@ class integration_searchView extends integration_search // Set a variable for search keyword $is_keyword = Context::get('is_keyword'); $is_keyword = escape(trim(utf8_normalize_spaces($is_keyword))); - if (mb_strlen($is_keyword, 'UTF-8') > 40) + if (mb_strlen($is_keyword, 'UTF-8') > 250) { - $is_keyword = mb_substr($is_keyword, 0, 40); + $is_keyword = mb_substr($is_keyword, 0, 250); } // Set page variables diff --git a/tests/_data/dbquery/selectTest3.xml b/tests/_data/dbquery/selectTest3.xml new file mode 100644 index 000000000..1f30ace49 --- /dev/null +++ b/tests/_data/dbquery/selectTest3.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/unit/framework/parsers/DBQueryParserTest.php b/tests/unit/framework/parsers/DBQueryParserTest.php index 736765375..02c2c2d57 100644 --- a/tests/unit/framework/parsers/DBQueryParserTest.php +++ b/tests/unit/framework/parsers/DBQueryParserTest.php @@ -70,6 +70,20 @@ class DBQueryParserTest extends \Codeception\TestCase\Test $this->assertEquals([20, '20201021'], $params); } + public function testSelectWithSearch() + { + $query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectTest3.xml'); + $args = array('division' => 1234, 'last_division' => 4567, 's_title' => '"I love you" -"I hate you"', 's_content' => '"I love you" -"I hate you"', 'page' => 3); + $sql = $query->getQueryString('rx_', $args); + $params = $query->getQueryParams(); + + $this->assertEquals('SELECT DISTINCT * FROM `rx_documents` AS `documents` ' . + 'WHERE (`list_order` >= ? AND `list_order` < ?) AND ' . + '((`title` LIKE ? AND `title` NOT LIKE ?) OR (`content` LIKE ? AND `content` NOT LIKE ?)) AND ' . + 'ORDER BY `list_order` ASC LIMIT 40, 20', $sql); + $this->assertEquals(['1234', '4567', 'I love you', 'I hate you', 'I love you', 'I hate you'], $params); + } + public function testJoin1() { $query = Rhymix\Framework\Parsers\DBQueryParser::loadXML(\RX_BASEDIR . 'tests/_data/dbquery/selectJoinTest1.xml');