From a089cd72de82acb95986a630b862a4c3090e3e2a Mon Sep 17 00:00:00 2001
From: Frederic Guillot <fred@kanboard.net>
Date: Fri, 1 Jul 2016 09:47:10 -0400
Subject: Fixed lexer issue with non word characters

---
 tests/units/Core/Filter/LexerTest.php | 44 +++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

(limited to 'tests/units')

diff --git a/tests/units/Core/Filter/LexerTest.php b/tests/units/Core/Filter/LexerTest.php
index b777531d..d57a7953 100644
--- a/tests/units/Core/Filter/LexerTest.php
+++ b/tests/units/Core/Filter/LexerTest.php
@@ -214,4 +214,48 @@ class LexerTest extends Base
 
         $this->assertSame($expected, $lexer->tokenize('tag:"tag 1" tag:tag2'));
     }
+
+    public function testTokenizeWithDash()
+    {
+        $lexer = new Lexer();
+        $lexer->addToken("/^(test:)/", 'T_TEST');
+
+        $expected = array(
+            'T_TEST' => array('PO-123'),
+        );
+
+        $this->assertSame($expected, $lexer->tokenize('test:PO-123'));
+
+        $lexer = new Lexer();
+        $lexer->setDefaultToken('myDefaultToken');
+
+        $expected = array(
+            'myDefaultToken' => array('PO-123'),
+        );
+
+        $this->assertSame($expected, $lexer->tokenize('PO-123'));
+    }
+
+    public function testTokenizeWithUnderscore()
+    {
+        $lexer = new Lexer();
+        $lexer->addToken("/^(test:)/", 'T_TEST');
+
+        $expected = array(
+            'T_TEST' => array('PO_123'),
+        );
+
+        $this->assertSame($expected, $lexer->tokenize('test:PO_123'));
+
+        $lexer = new Lexer();
+        $lexer->addToken("/^(test:)/", 'T_TEST');
+        $lexer->setDefaultToken('myDefaultToken');
+
+        $expected = array(
+            'T_TEST' => array('ABC-123'),
+            'myDefaultToken' => array('PO_123'),
+        );
+
+        $this->assertSame($expected, $lexer->tokenize('test:ABC-123 PO_123'));
+    }
 }
-- 
cgit v1.2.3