The Webfeed Flutter package for Appeto SDK.
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

73 lignes
2.8 KiB

  1. import 'dart:io';
  2. import 'dart:core';
  3. import 'package:test/test.dart';
  4. import 'package:webfeedclient/domain/rss_feed.dart';
  5. import 'package:xml/xml.dart' as xml;
  6. void main() {
  7. test("parsing Invalid.xml", () {
  8. var xmlString = new File("test/xml/Invalid.xml").readAsStringSync();
  9. try {
  10. new RssFeed.parse(xmlString);
  11. fail("Should throw Argument Error");
  12. } on ArgumentError {}
  13. });
  14. test("parsing RSS.xml", () {
  15. var xmlString = new File("test/xml/RSS.xml").readAsStringSync();
  16. var feed = new RssFeed.parse(xmlString);
  17. expect(feed.title, "News - Foo bar News");
  18. expect(feed.description, "Foo bar News and Updates feed provided by Foo bar, Inc.");
  19. expect(feed.link, "https://foo.bar.news/");
  20. expect(feed.language, "en-US");
  21. expect(feed.lastBuildDate, "Mon, 26 Mar 2018 14:00:00 PDT");
  22. expect(feed.generator, "Custom");
  23. expect(feed.copyright, "Copyright 2018, Foo bar Inc.");
  24. expect(feed.docs, "https://foo.bar.news/docs");
  25. expect(feed.managingEditor, "alice@foo.bar.news");
  26. expect(feed.rating, "The PICS rating of the feed");
  27. expect(feed.webMaster, "webmaster@foo.bar.news");
  28. expect(feed.ttl, 60);
  29. expect(feed.image.title, "Foo bar News");
  30. expect(feed.image.url, "https://foo.bar.news/logo.gif");
  31. expect(feed.image.link, "https://foo.bar.news/");
  32. expect(feed.cloud.domain, "radio.foo.bar.news");
  33. expect(feed.cloud.port, "80");
  34. expect(feed.cloud.path, "/RPC2");
  35. expect(feed.cloud.registerProcedure, "foo.bar.rssPleaseNotify");
  36. expect(feed.cloud.protocol, "xml-rpc");
  37. expect(feed.categories.length, 2);
  38. expect(feed.categories[0].domain, null);
  39. expect(feed.categories[0].value, "Ipsum");
  40. expect(feed.categories[1].domain, "news");
  41. expect(feed.categories[1].value, "Lorem Ipsum");
  42. expect(feed.skipDays.length, 3);
  43. expect(feed.skipDays.contains("Monday"), true);
  44. expect(feed.skipDays.contains("Tuesday"), true);
  45. expect(feed.skipDays.contains("Sunday"), true);
  46. expect(feed.skipHours.length, 5);
  47. expect(feed.skipHours.contains(0), true);
  48. expect(feed.skipHours.contains(1), true);
  49. expect(feed.skipHours.contains(2), true);
  50. expect(feed.skipHours.contains(3), true);
  51. expect(feed.skipHours.contains(4), true);
  52. expect(feed.items.length, 2);
  53. expect(feed.items.first.title, "The standard Lorem Ipsum passage, used since the 1500s");
  54. expect(feed.items.first.description, "Lorem ipsum dolor sit amet, consectetur adipiscing elit");
  55. expect(feed.items.first.link, "https://foo.bar.news/1");
  56. expect(feed.items.first.guid, "https://foo.bar.news/1?guid");
  57. expect(feed.items.first.pubDate, "Mon, 26 Mar 2018 14:00:00 PDT");
  58. expect(feed.items.first.categories.first.domain, "news");
  59. expect(feed.items.first.categories.first.value, "Lorem");
  60. });
  61. }