mirror of
https://github.com/servo/servo.git
synced 2025-08-07 14:35:33 +01:00
fixup! Issue #7382 Use descriptive enums instead of booleans for MIMEClassifier::classifer
This commit is contained in:
parent
5c807311de
commit
ff608de781
2 changed files with 23 additions and 8 deletions
|
@ -26,6 +26,7 @@ pub enum ApacheBugFlag {
|
||||||
OFF
|
OFF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(PartialEq)]
|
||||||
pub enum NoSniffFlag {
|
pub enum NoSniffFlag {
|
||||||
ON,
|
ON,
|
||||||
OFF
|
OFF
|
||||||
|
@ -81,14 +82,18 @@ impl MIMEClassifier {
|
||||||
//some sort of iterator over the classifiers might be better?
|
//some sort of iterator over the classifiers might be better?
|
||||||
fn sniff_unknown_type(&self, no_sniff_flag: NoSniffFlag, data: &[u8]) ->
|
fn sniff_unknown_type(&self, no_sniff_flag: NoSniffFlag, data: &[u8]) ->
|
||||||
Option<(String, String)> {
|
Option<(String, String)> {
|
||||||
match no_sniff_flag {
|
let should_sniff_scriptable = no_sniff_flag == NoSniffFlag::OFF;
|
||||||
NoSniffFlag::OFF => self.scriptable_classifier.classify(data),
|
let sniffed = if should_sniff_scriptable {
|
||||||
_ => None
|
self.scriptable_classifier.classify(data)
|
||||||
}.or_else(|| self.plaintext_classifier.classify(data))
|
} else {
|
||||||
.or_else(|| self.image_classifier.classify(data))
|
None
|
||||||
.or_else(|| self.audio_video_classifier.classify(data))
|
};
|
||||||
.or_else(|| self.archive_classifier.classify(data))
|
|
||||||
.or_else(|| self.binary_or_plaintext.classify(data))
|
sniffed.or_else(|| self.plaintext_classifier.classify(data))
|
||||||
|
.or_else(|| self.image_classifier.classify(data))
|
||||||
|
.or_else(|| self.audio_video_classifier.classify(data))
|
||||||
|
.or_else(|| self.archive_classifier.classify(data))
|
||||||
|
.or_else(|| self.binary_or_plaintext.classify(data))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn sniff_text_or_data(&self, data: &[u8]) -> Option<(String, String)> {
|
fn sniff_text_or_data(&self, data: &[u8]) -> Option<(String, String)> {
|
||||||
|
|
|
@ -529,3 +529,13 @@ fn test_sniff_octet_stream_apache_flag_on() {
|
||||||
ApacheBugFlag::ON);
|
ApacheBugFlag::ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_sniff_mp4_video_apache_flag_on() {
|
||||||
|
test_sniff_with_flags(&PathBuf::from("video/mp4/test.mp4"),
|
||||||
|
"video",
|
||||||
|
"mp4",
|
||||||
|
None,
|
||||||
|
NoSniffFlag::OFF,
|
||||||
|
ApacheBugFlag::ON);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue