events: Make m.room.avatar url optional, always
Removes the feature gate because this has been clarified to be right in the spec: https://github.com/matrix-org/matrix-spec/pull/987
This commit is contained in:
		
							parent
							
								
									eb515046d7
								
							
						
					
					
						commit
						f0710fdf1b
					
				| @ -14,9 +14,8 @@ use crate::MxcUri; | ||||
| /// A picture that is associated with the room.
 | ||||
| ///
 | ||||
| /// This can be displayed alongside the room information.
 | ||||
| #[derive(Clone, Debug, Deserialize, Serialize, EventContent)] | ||||
| #[derive(Clone, Debug, Default, Deserialize, Serialize, EventContent)] | ||||
| #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] | ||||
| #[cfg_attr(feature = "unstable-pre-spec", derive(Default))] | ||||
| #[ruma_event(type = "m.room.avatar", kind = State)] | ||||
| pub struct RoomAvatarEventContent { | ||||
|     /// Information about the avatar image.
 | ||||
| @ -24,35 +23,11 @@ pub struct RoomAvatarEventContent { | ||||
|     pub info: Option<Box<ImageInfo>>, | ||||
| 
 | ||||
|     /// URL of the avatar image.
 | ||||
|     ///
 | ||||
|     /// With the `unstable-pre-spec` feature, this field is optional.
 | ||||
|     /// See [matrix-spec#471](https://github.com/matrix-org/matrix-spec/issues/471).
 | ||||
|     #[cfg(not(feature = "unstable-pre-spec"))] | ||||
|     pub url: Box<MxcUri>, | ||||
| 
 | ||||
|     /// URL of the avatar image.
 | ||||
|     ///
 | ||||
|     /// Without the `unstable-pre-spec` feature, this field is not optional.
 | ||||
|     /// See [matrix-spec#471](https://github.com/matrix-org/matrix-spec/issues/471).
 | ||||
|     #[cfg(feature = "unstable-pre-spec")] | ||||
|     pub url: Option<Box<MxcUri>>, | ||||
| } | ||||
| 
 | ||||
| impl RoomAvatarEventContent { | ||||
|     /// Create an `RoomAvatarEventContent` from the given image URL.
 | ||||
|     ///
 | ||||
|     /// With the `unstable-pre-spec` feature, this method takes no parameters.
 | ||||
|     /// See [matrix-spec#471](https://github.com/matrix-org/matrix-spec/issues/471).
 | ||||
|     #[cfg(not(feature = "unstable-pre-spec"))] | ||||
|     pub fn new(url: Box<MxcUri>) -> Self { | ||||
|         Self { info: None, url } | ||||
|     } | ||||
| 
 | ||||
|     /// Create an empty `RoomAvatarEventContent`.
 | ||||
|     ///
 | ||||
|     /// Without the `unstable-pre-spec` feature, this method takes an `MxcUri`.
 | ||||
|     /// See [matrix-spec#471](https://github.com/matrix-org/matrix-spec/issues/471).
 | ||||
|     #[cfg(feature = "unstable-pre-spec")] | ||||
|     pub fn new() -> Self { | ||||
|         Self::default() | ||||
|     } | ||||
|  | ||||
| @ -192,17 +192,12 @@ fn deserialize_avatar_without_prev_content() { | ||||
|         "type": "m.room.avatar" | ||||
|     }); | ||||
| 
 | ||||
|     let expected_url = mxc_uri!("mxc://matrix.org/rnsldl8srs98IRrs").to_owned(); | ||||
| 
 | ||||
|     #[cfg(feature = "unstable-pre-spec")] | ||||
|     let expected_url = Some(expected_url); | ||||
| 
 | ||||
|     assert_matches!( | ||||
|         from_json_value::<AnyStateEvent>(json_data).unwrap(), | ||||
|         AnyStateEvent::RoomAvatar(StateEvent { | ||||
|             content: RoomAvatarEventContent { | ||||
|                 info: Some(info), | ||||
|                 url, | ||||
|                 url: Some(url), | ||||
|                 .. | ||||
|             }, | ||||
|             event_id, | ||||
| @ -245,7 +240,7 @@ fn deserialize_avatar_without_prev_content() { | ||||
|                             && thumbnail_url == mxc_uri!("mxc://matrix.org/98irRSS23srs") | ||||
|                     ) | ||||
|             ) | ||||
|             && url == expected_url | ||||
|             && url == mxc_uri!("mxc://matrix.org/rnsldl8srs98IRrs") | ||||
|             && unsigned.is_empty() | ||||
|     ); | ||||
| } | ||||
|  | ||||
| @ -99,17 +99,13 @@ fn deserialize_stripped_state_events() { | ||||
|     match event { | ||||
|         AnyStrippedStateEvent::RoomAvatar(event) => { | ||||
|             let image_info = event.content.info.unwrap(); | ||||
|             let expected_url = mxc_uri!("mxc://example.com/iMag3"); | ||||
| 
 | ||||
|             #[cfg(feature = "unstable-pre-spec")] | ||||
|             let expected_url = Some(expected_url.to_owned()); | ||||
| 
 | ||||
|             assert_eq!(image_info.height.unwrap(), uint!(128)); | ||||
|             assert_eq!(image_info.width.unwrap(), uint!(128)); | ||||
|             assert_eq!(image_info.mimetype.unwrap(), "image/jpeg"); | ||||
|             assert_eq!(image_info.size.unwrap(), uint!(1024)); | ||||
|             assert_eq!(image_info.thumbnail_info.unwrap().size.unwrap(), uint!(32)); | ||||
|             assert_eq!(event.content.url, expected_url); | ||||
|             assert_eq!(event.content.url.unwrap(), mxc_uri!("mxc://example.com/iMag3")); | ||||
|             assert_eq!(event.state_key, ""); | ||||
|             assert_eq!(event.sender.to_string(), "@example:localhost"); | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user