cover_image_test.dart 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import 'package:appflowy/plugins/document/presentation/editor_plugins/header/document_header_node_widget.dart';
  2. import 'package:flutter_test/flutter_test.dart';
  3. import 'package:integration_test/integration_test.dart';
  4. import '../util/emoji.dart';
  5. import '../util/util.dart';
  6. void main() {
  7. IntegrationTestWidgetsFlutterBinding.ensureInitialized();
  8. group('cover image', () {
  9. const location = 'cover_image';
  10. setUp(() async {
  11. await TestFolder.cleanTestLocation(location);
  12. await TestFolder.setTestLocation(location);
  13. });
  14. tearDown(() async {
  15. await TestFolder.cleanTestLocation(location);
  16. });
  17. tearDownAll(() async {
  18. await TestFolder.cleanTestLocation(null);
  19. });
  20. testWidgets('document cover tests', (tester) async {
  21. await tester.initializeAppFlowy();
  22. await tester.tapGoButton();
  23. tester.expectToSeeNoDocumentCover();
  24. // Hover over cover toolbar to show 'Add Cover' and 'Add Icon' buttons
  25. await tester.editor.hoverOnCoverToolbar();
  26. tester.expectToSeePluginAddCoverAndIconButton();
  27. // Insert a document cover
  28. await tester.editor.tapOnAddCover();
  29. tester.expectToSeeDocumentCover(
  30. CoverType.asset,
  31. "assets/images/app_flowy_abstract_cover_1.jpg",
  32. );
  33. // Hover over the cover to show the 'Change Cover' and delete buttons
  34. await tester.editor.hoverOnCover();
  35. tester.expectChangeCoverAndDeleteButton();
  36. // Change cover to a solid color background
  37. await tester.editor.hoverOnCover();
  38. await tester.editor.tapOnChangeCover();
  39. await tester.editor.switchSolidColorBackground();
  40. await tester.editor.dismissCoverPicker();
  41. tester.expectToSeeDocumentCover(CoverType.color, "ffe8e0ff");
  42. // Remove the cover
  43. await tester.editor.hoverOnCover();
  44. await tester.editor.tapOnRemoveCover();
  45. tester.expectToSeeNoDocumentCover();
  46. });
  47. testWidgets('document icon tests', (tester) async {
  48. await tester.initializeAppFlowy();
  49. await tester.tapGoButton();
  50. tester.expectToSeeDocumentIcon(null);
  51. // Hover over cover toolbar to show the 'Add Cover' and 'Add Icon' buttons
  52. await tester.editor.hoverOnCoverToolbar();
  53. tester.expectToSeePluginAddCoverAndIconButton();
  54. // Insert a document icon
  55. await tester.editor.tapAddIconButton();
  56. await tester.switchToEmojiList();
  57. await tester.tapEmoji('😀');
  58. tester.expectToSeeDocumentIcon('😀');
  59. // Remove the document icon from the cover toolbar
  60. await tester.editor.hoverOnCoverToolbar();
  61. await tester.editor.tapRemoveIconButton();
  62. tester.expectToSeeDocumentIcon(null);
  63. // Add the icon back for further testing
  64. await tester.editor.hoverOnCoverToolbar();
  65. await tester.editor.tapAddIconButton();
  66. await tester.switchToEmojiList();
  67. await tester.tapEmoji('😀');
  68. tester.expectToSeeDocumentIcon('😀');
  69. // Change the document icon
  70. await tester.editor.tapOnIconWidget();
  71. await tester.switchToEmojiList();
  72. await tester.tapEmoji('😅');
  73. tester.expectToSeeDocumentIcon('😅');
  74. // Remove the document icon from the icon picker
  75. await tester.editor.tapOnIconWidget();
  76. await tester.editor.tapRemoveIconButton(isInPicker: true);
  77. tester.expectToSeeDocumentIcon(null);
  78. });
  79. testWidgets('icon and cover at the same time', (tester) async {
  80. await tester.initializeAppFlowy();
  81. await tester.tapGoButton();
  82. tester.expectToSeeDocumentIcon(null);
  83. tester.expectToSeeNoDocumentCover();
  84. // Hover over cover toolbar to show the 'Add Cover' and 'Add Icon' buttons
  85. await tester.editor.hoverOnCoverToolbar();
  86. tester.expectToSeePluginAddCoverAndIconButton();
  87. // Insert a document icon
  88. await tester.editor.tapAddIconButton();
  89. await tester.switchToEmojiList();
  90. await tester.tapEmoji('😀');
  91. // Insert a document cover
  92. await tester.editor.tapOnAddCover();
  93. // Expect to see the icon and cover at the same time
  94. tester.expectToSeeDocumentIcon('😀');
  95. tester.expectToSeeDocumentCover(
  96. CoverType.asset,
  97. "assets/images/app_flowy_abstract_cover_1.jpg",
  98. );
  99. // Hover over the cover toolbar and see that neither icons are shown
  100. await tester.editor.hoverOnCoverToolbar();
  101. tester.expectToSeeEmptyDocumentHeaderToolbar();
  102. });
  103. });
  104. }