@@ -991,77 +991,43 @@ impl StateStore for SledStore {
991
991
992
992
#[ cfg( test) ]
993
993
mod test {
994
- use matrix_sdk_test:: async_test;
994
+ use matrix_sdk_test:: { async_test, test_json } ;
995
995
use ruma:: {
996
996
api:: client:: r0:: media:: get_content_thumbnail:: Method ,
997
- event_id,
998
997
events:: {
999
- room:: {
1000
- member:: { MembershipState , RoomMemberEventContent } ,
1001
- power_levels:: RoomPowerLevelsEventContent ,
1002
- } ,
1003
- AnySyncStateEvent , EventType , Unsigned ,
998
+ AnyEphemeralRoomEventContent , AnySyncEphemeralRoomEvent , AnySyncStateEvent , EventType ,
1004
999
} ,
1005
1000
mxc_uri,
1006
1001
receipt:: ReceiptType ,
1007
- room_id,
1008
1002
serde:: Raw ,
1009
- uint, user_id , MilliSecondsSinceUnixEpoch , UserId ,
1003
+ uint,
1010
1004
} ;
1011
- use serde_json:: json ;
1005
+ use serde_json:: Value as JsonValue ;
1012
1006
1013
1007
use super :: { Result , SledStore , StateChanges } ;
1014
1008
use crate :: {
1015
1009
deserialized_responses:: MemberEvent ,
1016
1010
media:: { MediaFormat , MediaRequest , MediaThumbnailSize , MediaType } ,
1011
+ store:: test:: { first_receipt_event_id, room_id, second_receipt_event_id, user_id} ,
1017
1012
StateStore ,
1018
1013
} ;
1019
1014
1020
- fn user_id ( ) -> & ' static UserId {
1021
- user_id ! ( "@example:localhost" )
1022
- }
1023
-
1024
- fn power_level_event ( ) -> Raw < AnySyncStateEvent > {
1025
- let content = RoomPowerLevelsEventContent :: default ( ) ;
1026
-
1027
- let event = json ! ( {
1028
- "event_id" : "$h29iv0s8:example.com" ,
1029
- "content" : content,
1030
- "sender" : user_id( ) ,
1031
- "type" : "m.room.power_levels" ,
1032
- "origin_server_ts" : 0u64 ,
1033
- "state_key" : "" ,
1034
- "unsigned" : Unsigned :: default ( ) ,
1035
- } ) ;
1036
-
1037
- serde_json:: from_value ( event) . unwrap ( )
1038
- }
1039
-
1040
- fn membership_event ( ) -> MemberEvent {
1041
- MemberEvent {
1042
- event_id : event_id ! ( "$h29iv0s8:example.com" ) . to_owned ( ) ,
1043
- content : RoomMemberEventContent :: new ( MembershipState :: Join ) ,
1044
- sender : user_id ( ) . to_owned ( ) ,
1045
- origin_server_ts : MilliSecondsSinceUnixEpoch :: now ( ) ,
1046
- state_key : user_id ( ) . to_owned ( ) ,
1047
- prev_content : None ,
1048
- unsigned : Unsigned :: default ( ) ,
1049
- }
1050
- }
1051
-
1052
1015
#[ async_test]
1053
1016
async fn test_member_saving ( ) {
1054
1017
let store = SledStore :: open ( ) . unwrap ( ) ;
1055
- let room_id = room_id ! ( "!test:localhost" ) ;
1018
+
1019
+ let room_id = room_id ( ) ;
1056
1020
let user_id = user_id ( ) ;
1057
1021
1058
1022
assert ! ( store. get_member_event( room_id, user_id) . await . unwrap( ) . is_none( ) ) ;
1059
1023
let mut changes = StateChanges :: default ( ) ;
1024
+ let json: & JsonValue = & test_json:: MEMBER ;
1025
+ let membership_event = serde_json:: from_value :: < MemberEvent > ( json. clone ( ) ) . unwrap ( ) ;
1060
1026
changes
1061
1027
. members
1062
1028
. entry ( room_id. to_owned ( ) )
1063
1029
. or_default ( )
1064
- . insert ( user_id. to_owned ( ) , membership_event ( ) ) ;
1030
+ . insert ( user_id. to_owned ( ) , membership_event) ;
1065
1031
1066
1032
store. save_changes ( & changes) . await . unwrap ( ) ;
1067
1033
assert ! ( store. get_member_event( room_id, user_id) . await . unwrap( ) . is_some( ) ) ;
@@ -1073,9 +1039,10 @@ mod test {
1073
1039
#[ async_test]
1074
1040
async fn test_power_level_saving ( ) {
1075
1041
let store = SledStore :: open ( ) . unwrap ( ) ;
1076
- let room_id = room_id ! ( "!test:localhost" ) ;
1042
+ let room_id = room_id ( ) ;
1077
1043
1078
- let raw_event = power_level_event ( ) ;
1044
+ let json: & JsonValue = & test_json:: POWER_LEVELS ;
1045
+ let raw_event = serde_json:: from_value :: < Raw < AnySyncStateEvent > > ( json. clone ( ) ) . unwrap ( ) ;
1079
1046
let event = raw_event. deserialize ( ) . unwrap ( ) ;
1080
1047
1081
1048
assert ! ( store
@@ -1098,89 +1065,85 @@ mod test {
1098
1065
async fn test_receipts_saving ( ) {
1099
1066
let store = SledStore :: open ( ) . unwrap ( ) ;
1100
1067
1101
- let room_id = room_id ! ( "!test:localhost" ) ;
1102
-
1103
- let first_event_id = event_id ! ( "$1435641916114394fHBLK:matrix.org" ) . to_owned ( ) ;
1104
- let second_event_id = event_id ! ( "$fHBLK1435641916114394:matrix.org" ) . to_owned ( ) ;
1068
+ let user_id = user_id ( ) ;
1069
+ let room_id = room_id ( ) ;
1070
+ let first_event_id = first_receipt_event_id ( ) ;
1071
+ let second_event_id = second_receipt_event_id ( ) ;
1072
+
1073
+ let first_receipt_json: & JsonValue = & test_json:: READ_RECEIPT ;
1074
+ let first_receipt_event =
1075
+ serde_json:: from_value :: < AnySyncEphemeralRoomEvent > ( first_receipt_json. clone ( ) )
1076
+ . unwrap ( ) ;
1077
+ let first_receipt_content = match first_receipt_event. content ( ) {
1078
+ AnyEphemeralRoomEventContent :: Receipt ( content) => content,
1079
+ _ => panic ! ( ) ,
1080
+ } ;
1105
1081
1106
- let first_receipt_event = serde_json:: from_value ( json ! ( {
1107
- first_event_id. clone( ) : {
1108
- "m.read" : {
1109
- user_id( ) . to_owned( ) : {
1110
- "ts" : 1436451550453u64
1111
- }
1112
- }
1113
- }
1114
- } ) )
1115
- . unwrap ( ) ;
1116
-
1117
- let second_receipt_event = serde_json:: from_value ( json ! ( {
1118
- second_event_id. clone( ) : {
1119
- "m.read" : {
1120
- user_id( ) . to_owned( ) : {
1121
- "ts" : 1436451551453u64
1122
- }
1123
- }
1124
- }
1125
- } ) )
1126
- . unwrap ( ) ;
1082
+ let second_receipt_json: & JsonValue = & test_json:: READ_RECEIPT_OTHER ;
1083
+ let second_receipt_event =
1084
+ serde_json:: from_value :: < AnySyncEphemeralRoomEvent > ( second_receipt_json. clone ( ) )
1085
+ . unwrap ( ) ;
1086
+ let second_receipt_content = match second_receipt_event. content ( ) {
1087
+ AnyEphemeralRoomEventContent :: Receipt ( content) => content,
1088
+ _ => panic ! ( ) ,
1089
+ } ;
1127
1090
1128
1091
assert ! ( store
1129
- . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id( ) )
1092
+ . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id)
1130
1093
. await
1131
1094
. unwrap( )
1132
1095
. is_none( ) ) ;
1133
1096
assert ! ( store
1134
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & first_event_id)
1097
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , first_event_id)
1135
1098
. await
1136
1099
. unwrap( )
1137
1100
. is_empty( ) ) ;
1138
1101
assert ! ( store
1139
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & second_event_id)
1102
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , second_event_id)
1140
1103
. await
1141
1104
. unwrap( )
1142
1105
. is_empty( ) ) ;
1143
1106
1144
1107
let mut changes = StateChanges :: default ( ) ;
1145
- changes. add_receipts ( room_id, first_receipt_event ) ;
1108
+ changes. add_receipts ( room_id, first_receipt_content ) ;
1146
1109
1147
1110
store. save_changes ( & changes) . await . unwrap ( ) ;
1148
1111
assert ! ( store
1149
- . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id( ) )
1112
+ . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id)
1150
1113
. await
1151
1114
. unwrap( )
1152
1115
. is_some( ) , ) ;
1153
1116
assert_eq ! (
1154
1117
store
1155
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & first_event_id)
1118
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , first_event_id)
1156
1119
. await
1157
1120
. unwrap( )
1158
1121
. len( ) ,
1159
1122
1
1160
1123
) ;
1161
1124
assert ! ( store
1162
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & second_event_id)
1125
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , second_event_id)
1163
1126
. await
1164
1127
. unwrap( )
1165
1128
. is_empty( ) ) ;
1166
1129
1167
1130
let mut changes = StateChanges :: default ( ) ;
1168
- changes. add_receipts ( room_id, second_receipt_event ) ;
1131
+ changes. add_receipts ( room_id, second_receipt_content ) ;
1169
1132
1170
1133
store. save_changes ( & changes) . await . unwrap ( ) ;
1171
1134
assert ! ( store
1172
- . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id( ) )
1135
+ . get_user_room_receipt_event( room_id, ReceiptType :: Read , user_id)
1173
1136
. await
1174
1137
. unwrap( )
1175
1138
. is_some( ) ) ;
1176
1139
assert ! ( store
1177
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & first_event_id)
1140
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , first_event_id)
1178
1141
. await
1179
1142
. unwrap( )
1180
1143
. is_empty( ) ) ;
1181
1144
assert_eq ! (
1182
1145
store
1183
- . get_event_room_receipt_events( room_id, ReceiptType :: Read , & second_event_id)
1146
+ . get_event_room_receipt_events( room_id, ReceiptType :: Read , second_event_id)
1184
1147
. await
1185
1148
. unwrap( )
1186
1149
. len( ) ,
0 commit comments