From 7a982f134eae2a547f605520494e829f836be2b1 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Sat, 2 Jan 2021 22:52:20 +0900 Subject: [PATCH] =?UTF-8?q?#1517=20=EB=B3=B4=EC=99=84:=20=EC=9C=A0?= =?UTF-8?q?=EB=8B=9B=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EB=8D=94=20=EB=A7=8E?= =?UTF-8?q?=EC=9D=B4=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/unit/framework/parsers/DBQueryParserTest.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/tests/unit/framework/parsers/DBQueryParserTest.php b/tests/unit/framework/parsers/DBQueryParserTest.php index 34b5d413b..dbdced2d7 100644 --- a/tests/unit/framework/parsers/DBQueryParserTest.php +++ b/tests/unit/framework/parsers/DBQueryParserTest.php @@ -92,11 +92,23 @@ class DBQueryParserTest extends \Codeception\TestCase\Test $this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? AND `content` LIKE ? AND `content` NOT LIKE ?)', $sql); $this->assertEquals(['%revenue%', '%+3.5\\%%', '%apos\'tro\\_phe%'], $params); + $args = array('s_content' => '(search keyword\\Z) -"-42"'); + $sql = $query->getQueryString('rx_', $args); + $params = $query->getQueryParams(); + $this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE ((`content` LIKE ? AND `content` LIKE ?) AND `content` NOT LIKE ?)', $sql); + $this->assertEquals(['%search%', '%keyword\\\\Z%', '%-42%'], $params); + $args = array('s_content' => '한글 AND -검색 (-키워드 OR 라이믹스)'); $sql = $query->getQueryString('rx_', $args); $params = $query->getQueryParams(); $this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? AND `content` NOT LIKE ? AND (`content` NOT LIKE ? OR `content` LIKE ?))', $sql); $this->assertEquals(['%한글%', '%검색%', '%키워드%', '%라이믹스%'], $params); + + $args = array('s_content' => '검색 OR (키워드 AND -"라이믹스 유닛테스트")'); + $sql = $query->getQueryString('rx_', $args); + $params = $query->getQueryParams(); + $this->assertEquals('SELECT * FROM `rx_documents` AS `documents` WHERE (`content` LIKE ? OR (`content` LIKE ? AND `content` NOT LIKE ?))', $sql); + $this->assertEquals(['%검색%', '%키워드%', '%라이믹스 유닛테스트%'], $params); } public function testJoin1()