Skip to content

Commit

Permalink
respect muted setting of chats (#397)
Browse files Browse the repository at this point in the history
* enable muted notifications

* building tests

* add tests, refactor mocks
  • Loading branch information
permler authored Jun 19, 2021
1 parent 2bdb35e commit 55ecf49
Show file tree
Hide file tree
Showing 24 changed files with 115 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ initializeFromChatEvent: anEvent
id: (chat at: 'id');
canSendMessages: ((chat at: 'permissions') at: 'can_send_messages');
type: ((chat at: 'type') at: '@type');
muted: ((chat at: 'notification_settings') at: 'mute_for') > 0;
lastMessage: ''
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
muted: aBoolean

muted := aBoolean
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
muted

^ muted
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"infoLoaded" : "per 6/4/2021 15:59",
"infoLoaded:" : "per 6/4/2021 15:51",
"initialize" : "per 6/4/2021 15:49",
"initializeFromChatEvent:" : "RS 5/29/2021 17:23",
"initializeFromChatEvent:" : "per 6/16/2021 17:51",
"isBasicGroup" : "per 6/15/2021 08:08",
"isGroup" : "per 6/4/2021 14:42",
"isPrivate" : "per 6/4/2021 14:42",
Expand All @@ -26,6 +26,8 @@
"loadInfoIfNotLoaded" : "TR 6/13/2021 15:54",
"messages" : "R.S 6/1/2020 15:37",
"messages:" : "5/11/2021 10:09:15",
"muted" : "per 6/16/2021 17:34",
"muted:" : "per 6/16/2021 17:35",
"numberOfMessages" : "js 8/1/2020 18:04",
"numberOfRequestedMessages" : "js 8/1/2020 17:43",
"numberOfRequestedMessages:" : "5/11/2021 10:09:15",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
"type",
"canSendMessages",
"core",
"infoLoaded" ],
"infoLoaded",
"muted" ],
"name" : "TCCChat",
"pools" : [
],
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
accessing
shouldNotify

^ (self isOutgoing not) and: [self chat muted not]
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@
"message:" : "js 8/2/2020 22:01",
"sender" : "pk 6/11/2021 10:21",
"senderID" : "per 5/13/2021 08:49",
"senderID:" : "js 8/2/2020 22:00" } }
"senderID:" : "js 8/2/2020 22:00",
"shouldNotify" : "per 6/16/2021 17:35" } }
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
event handling
newMessageReceived: aMessage

aMessage isOutgoing ifFalse: [
aMessage shouldNotify ifTrue: [
[(TCUNotification newWithMessage: aMessage) openInWorld] fork].
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
"initializeChatWindow" : "r.s 8/2/2020 19:09",
"logout" : "js 6/13/2020 18:11",
"newChatSelected:" : "js 8/2/2020 22:33",
"newMessageReceived:" : "per 5/16/2021 15:18",
"newMessageReceived:" : "per 6/16/2021 17:36",
"sendMessage:" : "rs 6/17/2020 21:19",
"subscribeChatsList" : "js 7/31/2020 23:09" } }
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ initialization
startTimeOut

self class defaultTimeOutDuration seconds wait.
self fadeOut.
self fadeOutThen: [self abandon].
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@
"openInWorld" : "JB 6/4/2021 21:52",
"sender" : "per 5/13/2021 08:50",
"sender:" : "per 5/13/2021 09:21",
"startTimeOut" : "JB 6/11/2021 15:21" } }
"startTimeOut" : "per 6/18/2021 09:11" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
this class tests TCCMessages
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
testing
testMessageShouldNotNotify

| chat |

chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 42).
self assert: false equals: ((TCTMMocks mockMessageFor: chat) shouldNotify).
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
testing
testMessageShouldNotify

| chat |

chat := TCCChat newFromChatEvent: (TCTMMocks mockChatEventMutedFor: 0).
self assert: true equals: ((TCTMMocks mockMessageFor: chat) shouldNotify).
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"class" : {
},
"instance" : {
"testMessageShouldNotNotify" : "per 6/18/2021 09:28",
"testMessageShouldNotify" : "per 6/18/2021 09:28" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"category" : "TelegramClientTests-Core",
"classinstvars" : [
],
"classvars" : [
],
"commentStamp" : "per 6/16/2021 17:38",
"instvars" : [
],
"name" : "TCTCMessageTests",
"pools" : [
],
"super" : "TCTCNoTdlibTestCase",
"type" : "normal" }
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
chat event
mockChatEventMutedFor: aNumber

^ (JsonObject newFrom: {
'@type' -> 'chat'.
'chat' -> (JsonObject newFrom: {
'id' -> self mockBasicGroupChat id.
'title' -> 'MutedMockChat'.
'type' -> (JsonObject newFrom: {
'@type' -> 'chatTypeBasicGroup'.
'basic_group_id' -> self mockBasicGroupChat id.
}).
'permissions' -> (JsonObject newFrom: {
'@type' -> 'can_send_messages'
}).
'notification_settings' -> (JsonObject newFrom: {
'mute_for' -> aNumber
}).
})
})
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
message
mockMessageFor: aChat

^ TCCMessage newFromMessageEvent: (self mockMessageJsonFrom: aChat id)
in: aChat
with: self mockCore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
chat
mockMutedPrivateChat

^ self mockPrivateChat muted: true;
yourself
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ mockPrivateChat
lastMessage: 'lastPrivateMessage';
canSendMessages: true;
infoLoaded: true;
muted: false;
yourself
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,20 @@
"class" : {
"mockBasicGroupChat" : "per 6/15/2021 09:16",
"mockBasicGroupFullInfoJson" : "per 6/10/2021 19:41",
"mockChatEventMutedFor:" : "per 6/18/2021 09:20",
"mockChats" : "TR 5/27/2021 19:55",
"mockCore" : "TR 6/13/2021 15:45",
"mockMembers" : "per 6/15/2021 08:25",
"mockMessage" : "per 6/10/2021 19:30",
"mockMessageDate" : "RS 6/6/2021 11:42",
"mockMessageEventFrom:" : "RS 5/23/2021 17:56",
"mockMessageFor:" : "per 6/18/2021 09:28",
"mockMessageID" : "pk 5/19/2021 11:36",
"mockMessageJsonFrom:" : "per 6/10/2021 19:30",
"mockMessageText" : "pk 5/19/2021 11:38",
"mockMessageWith:" : "6/13/2021 15:37:31",
"mockPrivateChat" : "per 6/15/2021 09:15",
"mockMutedPrivateChat" : "per 6/18/2021 08:55",
"mockPrivateChat" : "per 6/18/2021 09:17",
"mockSupergroupChat" : "per 6/15/2021 09:16",
"mockSupergroupMembersJson" : "per 6/10/2021 20:53",
"mockUnloadedBasicGroupChat" : "per 6/15/2021 09:16",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
testing
testMutedNotificationNotVisible

| message |
message := TCTMMocks mockMessage.
message chat: TCTMMocks mockMutedPrivateChat.
TCUMain basicNew newMessageReceived: message.
self deny: ((Project current world submorphOfClass: TCUNotification) notNil).
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
testing
testUnmutedNotificationVisible

| message |
message := TCTMMocks mockMessage.
message chat: TCTMMocks mockPrivateChat.
TCUMain basicNew newMessageReceived: message.
1 seconds wait.
self assert: ((Project current world submorphOfClass: TCUNotification) notNil).
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
"class" : {
},
"instance" : {
"testMutedNotificationNotVisible" : "per 6/18/2021 09:35",
"testNotificationConstructor" : "TR 6/13/2021 15:45",
"testNotificationContainsMessage" : "JB 6/7/2021 09:28",
"testNotificationContainsSender" : "per 6/10/2021 19:31",
"testNotificationHidesPrivateChatTitle" : "TR 6/13/2021 15:46",
"testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46" } }
"testNotificationShowsGroupChatTitle" : "TR 6/13/2021 15:46",
"testUnmutedNotificationVisible" : "per 6/18/2021 09:35" } }

0 comments on commit 55ecf49

Please sign in to comment.