• # Idée pour Hurl

    Posté par . En réponse à la dépêche epub, le convertisseur EPUB3 à la volée de LinuxFr.org. Évalué à 4.

    Salut, vraiment un article encore très intéressant !

    Je suis l'un des mainteneurs de Hurl et j'ai regardé les tests Hurl par curiosité:

    GET http://{{TARGET}}:9000/news/news_slug.epub
    [Options]
    http2: {{HTTP2}}
    output: epub/news_slug.epub
    HTTP/1.1 200
    [Asserts]
    header "Content-Type" == "application/epub+zip"
    bytes contains hex,6D696D65747970656170706C69636174696F6E2F657075622B7A6970; # mimetypeapplication/epub+zip
    bytes contains hex,4D4554412D494E462F636F6E7461696E65722E786D6C; # META-INF/container.xml
    bytes contains hex,455055422F6E61762E7868746D6C; # EPUB/nav.xhtml
    bytes contains hex,455055422F526F6E526F6E6E656D656E742E637373; # EPUB/RonRonnement.css
    bytes contains hex,455055422F636F6E74656E742E7868746D6C; # EPUB/content.xhtml
    bytes contains hex,455055422F7061636B6167652E6F7066; # EPUB/package.opf
    

    Il n'y a rien dans Hurl pour aider à tester du contenu d'un fichier zip et effectivement ça rend les tests un peu fastidieux à écrire (d'où la présence des commentaires qui indiquent quels fichiers on attend dans l'archive). Dans Hurl, il y a la notion de filtres et je me demande si on ne pourrait pas implémenter un filtre "zipfiles" (nom à trouver!) qui renvoie la liste des noms de fichiers de l'archive.

    Le test deviendrait quelque chose comme ça (avec le filtre nth qui permet d'accéder à un élément de liste):

    GET http://{{TARGET}}:9000/news/news_slug.epub
    [Options]
    http2: {{HTTP2}}
    output: epub/news_slug.epub
    HTTP 200
    [Asserts]
    header "Content-Type" == "application/epub+zip"
    bytes zipfiles nth 0 "mimetypeapplication/epub+zip"
    bytes zipfiles nth 1 "META-INF/container.xml"
    bytes zipfiles nth 2 "EPUB/nav.xhtml"
    bytes zipfiles nth 3 "EPUB/RonRonnement.css"
    bytes zipfiles nth 4 "EPUB/content.xhtml"
    bytes zipfiles nth 5 "EPUB/package.opf"
    

    Ca pourrait être sympa, on va en discuter entre mainteneurs! En tout cas, n'hésitez pas à nous remonter des issues ou des idées d'améliorations sur Hurl, on est preneurs (dans la limite des choses réalisables :))!!