summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-02-11 18:55:09 (GMT)
committerTobias Markmann <tm@ayena.de>2015-02-11 19:46:31 (GMT)
commitdf2ad14297e264365c37435cf64672ea3920ea10 (patch)
tree64d2cd00bd0ffd4f8f7eef16ea23cc1d220e9db7 /Swift/Controllers
parentce0e55e031c634b5e16520b22ea241775a159124 (diff)
downloadswift-df2ad14297e264365c37435cf64672ea3920ea10.zip
swift-df2ad14297e264365c37435cf64672ea3920ea10.tar.bz2
Do not try highlight words if no text and background colours are specified
The tests have been adjusted so a colour is set in their highlight actions. Test-Information: Tested with a "own nick" highlight rule with a "No highlight" action and one with highlights colours set. The cases now work as expected. Added a unit test that checks that no highlighting happens when no colour is specified. Change-Id: Ied48d8c2e033531c1b0532348b9380e1bd884b44
Diffstat (limited to 'Swift/Controllers')
-rw-r--r--Swift/Controllers/Chat/ChatMessageParser.cpp4
-rw-r--r--Swift/Controllers/Chat/UnitTest/ChatMessageParserTest.cpp15
2 files changed, 16 insertions, 3 deletions
diff --git a/Swift/Controllers/Chat/ChatMessageParser.cpp b/Swift/Controllers/Chat/ChatMessageParser.cpp
index fe61724..666ec2f 100644
--- a/Swift/Controllers/Chat/ChatMessageParser.cpp
+++ b/Swift/Controllers/Chat/ChatMessageParser.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 Isode Limited.
+ * Copyright (c) 2013-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -148,6 +148,8 @@ namespace Swift {
continue; /* this rule only applies to MUC's, and this is a CHAT */
} else if (rule.getMatchChat() && mucMode_) {
continue; /* this rule only applies to CHAT's, and this is a MUC */
+ } else if (rule.getAction().getTextBackground().empty() && rule.getAction().getTextColor().empty()) {
+ continue; /* do not try to highlight text, if no highlight color is specified */
}
const std::vector<boost::regex> keywordRegex = rule.getKeywordRegex(nick);
foreach(const boost::regex& regex, keywordRegex) {
diff --git a/Swift/Controllers/Chat/UnitTest/ChatMessageParserTest.cpp b/Swift/Controllers/Chat/UnitTest/ChatMessageParserTest.cpp
index 1192c8f..1b92bb6 100644
--- a/Swift/Controllers/Chat/UnitTest/ChatMessageParserTest.cpp
+++ b/Swift/Controllers/Chat/UnitTest/ChatMessageParserTest.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 Isode Limited.
+ * Copyright (c) 2013-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -20,6 +20,7 @@ class ChatMessageParserTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testHiddenEmoticon);
CPPUNIT_TEST(testEndlineEmoticon);
CPPUNIT_TEST(testBoundedEmoticons);
+ CPPUNIT_TEST(testNoColourNoHighlight);
CPPUNIT_TEST_SUITE_END();
public:
@@ -67,6 +68,7 @@ public:
rule.setMatchCase(matchCase);
rule.setMatchWholeWords(matchWholeWord);
rule.setMatchChat(true);
+ rule.getAction().setTextBackground("white");
return rule;
}
@@ -85,13 +87,16 @@ public:
return list;
}
- static HighlightRulesListPtr ruleListWithNickHighlight()
+ static HighlightRulesListPtr ruleListWithNickHighlight(bool withHighlightColour = true)
{
HighlightRule rule;
rule.setMatchChat(true);
rule.setNickIsKeyword(true);
rule.setMatchCase(true);
rule.setMatchWholeWords(true);
+ if (withHighlightColour) {
+ rule.getAction().setTextBackground("white");
+ }
boost::shared_ptr<HighlightManager::HighlightRulesList> list = boost::make_shared<HighlightManager::HighlightRulesList>();
list->addRule(rule);
return list;
@@ -256,6 +261,12 @@ public:
assertText(result, 2, ")");
}
+ void testNoColourNoHighlight() {
+ ChatMessageParser testling(emoticons_, ruleListWithNickHighlight(false));
+ ChatWindow::ChatMessage result = testling.parseMessageBody("Alice", "Alice");
+ assertText(result, 0, "Alice");
+ }
+
private:
std::map<std::string, std::string> emoticons_;
std::string smile1_;