@@ -88,6 +88,31 @@ void main() {
8888 return scrollView.controller;
8989 }
9090
91+ group ('MessageListPage' , () {
92+ testWidgets ('composeBoxControllerOf finds compose box' , (tester) async {
93+ final stream = eg.stream ();
94+ await setupMessageListPage (tester, narrow: StreamNarrow (stream.streamId),
95+ messages: [eg.streamMessage (stream: stream, content: "<p>a message</p>" )]);
96+ final context = tester.element (find.text ("a message" ));
97+ check (MessageListPage .composeBoxControllerOf (context)).isNotNull ();
98+ });
99+
100+ testWidgets ('composeBoxControllerOf null when no compose box' , (tester) async {
101+ await setupMessageListPage (tester, narrow: const CombinedFeedNarrow (),
102+ messages: [eg.streamMessage (content: "<p>a message</p>" )]);
103+ final context = tester.element (find.text ("a message" ));
104+ check (MessageListPage .composeBoxControllerOf (context)).isNull ();
105+ });
106+
107+ testWidgets ('composeBoxControllerOf throws when not a descendant of MessageListPage' , (tester) async {
108+ await setupMessageListPage (tester,
109+ messages: [eg.streamMessage (content: "<p>a message</p>" )]);
110+ final element = tester.element (find.byType (PerAccountStoreWidget ));
111+ check (() => MessageListPage .composeBoxControllerOf (element))
112+ .throws <void >();
113+ });
114+ });
115+
91116 group ('presents message content appropriately' , () {
92117 // regression test for https://github.com/zulip/zulip-flutter/issues/736
93118 testWidgets ('content in "Combined feed" not asked to consume insets (including bottom)' , (tester) async {
0 commit comments