From 815190be147e575f12211c468f8121e5c60e6337 Mon Sep 17 00:00:00 2001 From: Tulir Asokan Date: Thu, 16 Apr 2020 19:27:35 +0300 Subject: Update stuff and move pushrules to mautrix-go --- matrix/pushrules/rule_array_test.go | 294 ------------------------------------ 1 file changed, 294 deletions(-) delete mode 100644 matrix/pushrules/rule_array_test.go (limited to 'matrix/pushrules/rule_array_test.go') diff --git a/matrix/pushrules/rule_array_test.go b/matrix/pushrules/rule_array_test.go deleted file mode 100644 index 8bfc5e9..0000000 --- a/matrix/pushrules/rule_array_test.go +++ /dev/null @@ -1,294 +0,0 @@ -// gomuks - A terminal Matrix client written in Go. -// Copyright (C) 2019 Tulir Asokan -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package pushrules_test - -import ( - "github.com/stretchr/testify/assert" - "maunium.net/go/gomuks/matrix/pushrules" - "maunium.net/go/mautrix" - "testing" -) - -func TestPushRuleArray_GetActions_FirstMatchReturns(t *testing.T) { - cond1 := newMatchPushCondition("content.msgtype", "m.emote") - cond2 := newMatchPushCondition("content.body", "no match") - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "ping"}, - } - rule1 := &pushrules.PushRule{ - Type: pushrules.OverrideRule, - Enabled: true, - Conditions: []*pushrules.PushCondition{cond1, cond2}, - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule2 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!fakeroom:maunium.net", - Actions: actions2, - } - - actions3 := pushrules.PushActionArray{ - {Action: pushrules.ActionCoalesce}, - } - rule3 := &pushrules.PushRule{ - Type: pushrules.SenderRule, - Enabled: true, - RuleID: "@tulir:maunium.net", - Actions: actions3, - } - - rules := pushrules.PushRuleArray{rule1, rule2, rule3} - - event := newFakeEvent(mautrix.EventMessage, mautrix.Content{ - MsgType: mautrix.MsgEmote, - Body: "is testing pushrules", - }) - assert.Equal(t, rules.GetActions(blankTestRoom, event), actions2) -} - -func TestPushRuleArray_GetActions_NoMatchesIsNil(t *testing.T) { - cond1 := newMatchPushCondition("content.msgtype", "m.emote") - cond2 := newMatchPushCondition("content.body", "no match") - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "ping"}, - } - rule1 := &pushrules.PushRule{ - Type: pushrules.OverrideRule, - Enabled: true, - Conditions: []*pushrules.PushCondition{cond1, cond2}, - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule2 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!realroom:maunium.net", - Actions: actions2, - } - - actions3 := pushrules.PushActionArray{ - {Action: pushrules.ActionCoalesce}, - } - rule3 := &pushrules.PushRule{ - Type: pushrules.SenderRule, - Enabled: true, - RuleID: "@otheruser:maunium.net", - Actions: actions3, - } - - rules := pushrules.PushRuleArray{rule1, rule2, rule3} - - event := newFakeEvent(mautrix.EventMessage, mautrix.Content{ - MsgType: mautrix.MsgEmote, - Body: "is testing pushrules", - }) - assert.Nil(t, rules.GetActions(blankTestRoom, event)) -} - -func TestPushRuleMap_GetActions_RoomRuleExists(t *testing.T) { - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule1 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!realroom:maunium.net", - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - } - rule2 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!thirdroom:maunium.net", - Actions: actions2, - } - - actions3 := pushrules.PushActionArray{ - {Action: pushrules.ActionCoalesce}, - } - rule3 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!fakeroom:maunium.net", - Actions: actions3, - } - - rules := pushrules.PushRuleMap{ - Map: map[string]*pushrules.PushRule{ - rule1.RuleID: rule1, - rule2.RuleID: rule2, - rule3.RuleID: rule3, - }, - Type: pushrules.RoomRule, - } - - event := newFakeEvent(mautrix.EventMessage, mautrix.Content{ - MsgType: mautrix.MsgEmote, - Body: "is testing pushrules", - }) - assert.Equal(t, rules.GetActions(blankTestRoom, event), actions3) -} - -func TestPushRuleMap_GetActions_RoomRuleDoesntExist(t *testing.T) { - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule1 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!realroom:maunium.net", - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - } - rule2 := &pushrules.PushRule{ - Type: pushrules.RoomRule, - Enabled: true, - RuleID: "!thirdroom:maunium.net", - Actions: actions2, - } - - rules := pushrules.PushRuleMap{ - Map: map[string]*pushrules.PushRule{ - rule1.RuleID: rule1, - rule2.RuleID: rule2, - }, - Type: pushrules.RoomRule, - } - - event := newFakeEvent(mautrix.EventMessage, mautrix.Content{ - MsgType: mautrix.MsgEmote, - Body: "is testing pushrules", - }) - assert.Nil(t, rules.GetActions(blankTestRoom, event)) -} - -func TestPushRuleMap_GetActions_SenderRuleExists(t *testing.T) { - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule1 := &pushrules.PushRule{ - Type: pushrules.SenderRule, - Enabled: true, - RuleID: "@tulir:maunium.net", - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - } - rule2 := &pushrules.PushRule{ - Type: pushrules.SenderRule, - Enabled: true, - RuleID: "@someone:maunium.net", - Actions: actions2, - } - - actions3 := pushrules.PushActionArray{ - {Action: pushrules.ActionCoalesce}, - } - rule3 := &pushrules.PushRule{ - Type: pushrules.SenderRule, - Enabled: true, - RuleID: "@otheruser:matrix.org", - Actions: actions3, - } - - rules := pushrules.PushRuleMap{ - Map: map[string]*pushrules.PushRule{ - rule1.RuleID: rule1, - rule2.RuleID: rule2, - rule3.RuleID: rule3, - }, - Type: pushrules.SenderRule, - } - - event := newFakeEvent(mautrix.EventMessage, mautrix.Content{ - MsgType: mautrix.MsgEmote, - Body: "is testing pushrules", - }) - assert.Equal(t, rules.GetActions(blankTestRoom, event), actions1) -} - -func TestPushRuleArray_SetTypeAndMap(t *testing.T) { - actions1 := pushrules.PushActionArray{ - {Action: pushrules.ActionDontNotify}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakHighlight, Value: false}, - {Action: pushrules.ActionSetTweak, Tweak: pushrules.TweakSound, Value: "pong"}, - } - rule1 := &pushrules.PushRule{ - Enabled: true, - RuleID: "@tulir:maunium.net", - Actions: actions1, - } - - actions2 := pushrules.PushActionArray{ - {Action: pushrules.ActionNotify}, - } - rule2 := &pushrules.PushRule{ - Enabled: true, - RuleID: "@someone:maunium.net", - Actions: actions2, - } - - actions3 := pushrules.PushActionArray{ - {Action: pushrules.ActionCoalesce}, - } - rule3 := &pushrules.PushRule{ - Enabled: true, - RuleID: "@otheruser:matrix.org", - Actions: actions3, - } - - ruleArray := pushrules.PushRuleArray{rule1, rule2, rule3} - ruleMap := ruleArray.SetTypeAndMap(pushrules.SenderRule) - assert.Equal(t, pushrules.SenderRule, ruleMap.Type) - for _, rule := range ruleArray { - assert.Equal(t, rule, ruleMap.Map[rule.RuleID]) - } - newRuleArray := ruleMap.Unmap() - for _, rule := range ruleArray { - assert.Contains(t, newRuleArray, rule) - } -} -- cgit v1.2.3