Image height was validated against 0..=144, the same bound as width, but the RSS 2.0 specification allows heights up to 400 (width max is 144). Spec-valid images with a height between 145 and 400 were wrongly reported as invalid. Validate height against 0..=400 and fix the error message.
43 lines
1.2 KiB
Rust
43 lines
1.2 KiB
Rust
#![cfg(feature = "validation")]
|
|
|
|
use rss::validation::Validate;
|
|
use rss::ImageBuilder;
|
|
|
|
fn image_with_height(height: &str) -> rss::Image {
|
|
ImageBuilder::default()
|
|
.url("https://example.com/image.png".to_string())
|
|
.link("https://example.com/".to_string())
|
|
.title("title".to_string())
|
|
.height(height.to_string())
|
|
.build()
|
|
}
|
|
|
|
fn image_with_width(width: &str) -> rss::Image {
|
|
ImageBuilder::default()
|
|
.url("https://example.com/image.png".to_string())
|
|
.link("https://example.com/".to_string())
|
|
.title("title".to_string())
|
|
.width(width.to_string())
|
|
.build()
|
|
}
|
|
|
|
#[test]
|
|
fn image_height_allows_up_to_400() {
|
|
// The RSS 2.0 specification sets the maximum image height to 400.
|
|
assert!(image_with_height("31").validate().is_ok());
|
|
assert!(image_with_height("200").validate().is_ok());
|
|
assert!(image_with_height("400").validate().is_ok());
|
|
}
|
|
|
|
#[test]
|
|
fn image_height_above_400_is_invalid() {
|
|
assert!(image_with_height("401").validate().is_err());
|
|
}
|
|
|
|
#[test]
|
|
fn image_width_max_is_still_144() {
|
|
// Width keeps its specification maximum of 144.
|
|
assert!(image_with_width("144").validate().is_ok());
|
|
assert!(image_with_width("145").validate().is_err());
|
|
}
|