HTMLEntitiesDecode: Fixing the actual display; content isn't required for the Text template; also removing html_enc so that things are displayed correctly

master
Rob Emery 2016-05-14 20:05:32 +01:00
parent 07ecf6867a
commit e6810b754c
2 changed files with 16 additions and 22 deletions

View File

@ -47,14 +47,11 @@ handle remainder => sub {
return "Decoded HTML Entity: $decoded",
structured_answer => {
data => {
title => html_enc($decoded),
subtitle => 'HTML Entity Decode: '.html_enc($_)
title => $decoded,
subtitle => 'HTML Entity Decode: '.$_
},
templates => {
group => 'text',
options => {
content => 'DDH.html_entity.content'
}
}
};
};

View File

@ -1,4 +1,4 @@
#!/usr/bin/env perl
#!/usr/bin/env perl
use strict;
use warnings;
@ -18,10 +18,7 @@ sub build_structured_answer {
subtitle => $subtitle,
},
templates => {
group => 'text',
options => {
content => 'DDH.html_entity.content'
}
group => 'text'
}
};
}
@ -35,32 +32,32 @@ ddg_goodie_test(
[qw(DDG::Goodie::HTMLEntitiesDecode)],
# Simple decimal test
'html decode !' => build_test("Decoded HTML Entity: !", "!", "HTML Entity Decode: !"),
'html decode !' => build_test("Decoded HTML Entity: !", "!", "HTML Entity Decode: !"),
# Simple text test
'html entity &' => build_test("Decoded HTML Entity: &", "&","HTML Entity Decode: &"),
'html entity &' => build_test("Decoded HTML Entity: &", "&","HTML Entity Decode: &"),
# Another simple text test
'decode html for >' => build_test("Decoded HTML Entity: >", ">","HTML Entity Decode: >"),
'decode html for >' => build_test("Decoded HTML Entity: >", ">","HTML Entity Decode: >"),
# Simple hex test
'&#x21 htmlentity' => build_test("Decoded HTML Entity: !", "!","HTML Entity Decode: &#x21"),
'&#x21 htmlentity' => build_test("Decoded HTML Entity: !", "!","HTML Entity Decode: &#x21"),
# No "&" and ";" in decimal input
'#36 html decode' => build_test('Decoded HTML Entity: $', '$',"HTML Entity Decode: #36"),
# Variety in hex queries
'&#X22 decodehtml' => build_test('Decoded HTML Entity: "', '"',"HTML Entity Decode: &#X22"),
'&#X22 decodehtml' => build_test('Decoded HTML Entity: "', '"',"HTML Entity Decode: &#X22"),
# More variety in hex queries
'htmlentity for #x3c' => build_test("Decoded HTML Entity: <", "&lt;","HTML Entity Decode: #x3c"),
'htmlentity for #x3c' => build_test("Decoded HTML Entity: <", "<","HTML Entity Decode: #x3c"),
# "&cent;" succeeds
'html decode &cent;' => build_test(qr/.*/, "&cent;","HTML Entity Decode: &amp;cent;"),
'html decode &cent;' => build_test("Decoded HTML Entity: ¢", '¢',"HTML Entity Decode: &cent;"),
# "&cent" also succeeds (missing back ";" is OK)
'html decode &cent' => build_test(qr/.*/, "&cent;","HTML Entity Decode: &amp;cent"),
'html decode &cent' => build_test("Decoded HTML Entity: ¢", '¢',"HTML Entity Decode: &cent"),
# "cent" fails during the regex match because of the missing front "&" (stricter for text to eliminate false positive encoding hits)
'html decode cent' => undef,
# "cent;" fails during the regex match for the same reasons as above
'html decode cent;' => undef,
# "&#20;" has no visual representation
'html entity of &#20;' => build_test("Decoded HTML Entity: Unicode control character (no visual representation)", "Unicode control character (no visual representation)","HTML Entity Decode: &amp;#20;"),
'html entity of &#20;' => build_test("Decoded HTML Entity: Unicode control character (no visual representation)", "Unicode control character (no visual representation)","HTML Entity Decode: &#20;"),
# Querying for "&bunnyrabbit;" should fail
'html decode &bunnyrabbit;' => undef,
@ -70,12 +67,12 @@ ddg_goodie_test(
'html decode apostrophe' => undef,
# natural querying
'What is the decoded html entity for &#960;?' => build_test("Decoded HTML Entity: π", "&pi;","HTML Entity Decode: &amp;#960;"),
'What is the decoded html entity for &#960;?' => build_test("Decoded HTML Entity: π", "π","HTML Entity Decode: &#960;"),
# natural querying
'what is decoded html entity for #960 ?' => build_test("Decoded HTML Entity: π", "&pi;","HTML Entity Decode: #960"),
'what is decoded html entity for #960 ?' => build_test("Decoded HTML Entity: π", "π","HTML Entity Decode: #960"),
# no "html" in query
'the decoded entity for &#333; is?' => build_test("Decoded HTML Entity: ō", "&#x14D;","HTML Entity Decode: &amp;#333;"),
'the decoded entity for &#333; is?' => build_test("Decoded HTML Entity: ō", "ō","HTML Entity Decode: &#333;"),
);
done_testing;