cover_image_test.dart 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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. testWidgets('document cover tests', (tester) async {
  10. await tester.initializeAppFlowy();
  11. await tester.tapGoButton();
  12. tester.expectToSeeNoDocumentCover();
  13. // Hover over cover toolbar to show 'Add Cover' and 'Add Icon' buttons
  14. await tester.editor.hoverOnCoverToolbar();
  15. tester.expectToSeePluginAddCoverAndIconButton();
  16. // Insert a document cover
  17. await tester.editor.tapOnAddCover();
  18. tester.expectToSeeDocumentCover(CoverType.asset);
  19. // Hover over the cover to show the 'Change Cover' and delete buttons
  20. await tester.editor.hoverOnCover();
  21. tester.expectChangeCoverAndDeleteButton();
  22. // Change cover to a solid color background
  23. await tester.editor.tapOnChangeCover();
  24. await tester.editor.switchSolidColorBackground();
  25. await tester.editor.dismissCoverPicker();
  26. tester.expectToSeeDocumentCover(CoverType.color);
  27. // Change cover to a network image
  28. const imageUrl =
  29. "https://raw.githubusercontent.com/AppFlowy-IO/AppFlowy/main/frontend/appflowy_flutter/assets/images/appflowy_launch_splash.jpg";
  30. await tester.editor.hoverOnCover();
  31. await tester.editor.tapOnChangeCover();
  32. await tester.editor.addNetworkImageCover(imageUrl);
  33. await tester.editor.switchNetworkImageCover(imageUrl);
  34. await tester.editor.dismissCoverPicker();
  35. tester.expectToSeeDocumentCover(CoverType.file);
  36. // Remove the cover
  37. await tester.editor.hoverOnCover();
  38. await tester.editor.tapOnRemoveCover();
  39. tester.expectToSeeNoDocumentCover();
  40. });
  41. testWidgets('document icon tests', (tester) async {
  42. await tester.initializeAppFlowy();
  43. await tester.tapGoButton();
  44. tester.expectToSeeDocumentIcon(null);
  45. // Hover over cover toolbar to show the 'Add Cover' and 'Add Icon' buttons
  46. await tester.editor.hoverOnCoverToolbar();
  47. tester.expectToSeePluginAddCoverAndIconButton();
  48. // Insert a document icon
  49. await tester.editor.tapAddIconButton();
  50. await tester.switchToEmojiList();
  51. await tester.tapEmoji('😀');
  52. tester.expectToSeeDocumentIcon('😀');
  53. // Remove the document icon from the cover toolbar
  54. await tester.editor.hoverOnCoverToolbar();
  55. await tester.editor.tapRemoveIconButton();
  56. tester.expectToSeeDocumentIcon(null);
  57. // Add the icon back for further testing
  58. await tester.editor.hoverOnCoverToolbar();
  59. await tester.editor.tapAddIconButton();
  60. await tester.switchToEmojiList();
  61. await tester.tapEmoji('😀');
  62. tester.expectToSeeDocumentIcon('😀');
  63. // Change the document icon
  64. await tester.editor.tapOnIconWidget();
  65. await tester.switchToEmojiList();
  66. await tester.tapEmoji('😅');
  67. tester.expectToSeeDocumentIcon('😅');
  68. // Remove the document icon from the icon picker
  69. await tester.editor.tapOnIconWidget();
  70. await tester.editor.tapRemoveIconButton(isInPicker: true);
  71. tester.expectToSeeDocumentIcon(null);
  72. });
  73. testWidgets('icon and cover at the same time', (tester) async {
  74. await tester.initializeAppFlowy();
  75. await tester.tapGoButton();
  76. tester.expectToSeeDocumentIcon(null);
  77. tester.expectToSeeNoDocumentCover();
  78. // Hover over cover toolbar to show the 'Add Cover' and 'Add Icon' buttons
  79. await tester.editor.hoverOnCoverToolbar();
  80. tester.expectToSeePluginAddCoverAndIconButton();
  81. // Insert a document icon
  82. await tester.editor.tapAddIconButton();
  83. await tester.switchToEmojiList();
  84. await tester.tapEmoji('😀');
  85. // Insert a document cover
  86. await tester.editor.tapOnAddCover();
  87. // Expect to see the icon and cover at the same time
  88. tester.expectToSeeDocumentIcon('😀');
  89. tester.expectToSeeDocumentCover(CoverType.asset);
  90. // Hover over the cover toolbar and see that neither icons are shown
  91. await tester.editor.hoverOnCoverToolbar();
  92. tester.expectToSeeEmptyDocumentHeaderToolbar();
  93. });
  94. });
  95. }