@@ -68,6 +68,51 @@ def test_not_calling_send_private_message_without_recipients(self, key,
68
68
69
69
assert not write_box .model .send_private_message .called
70
70
71
+ @pytest .mark .parametrize ('key' , keys_for_command ('SAVE_AS_DRAFT' ))
72
+ @pytest .mark .parametrize ('stream_message' , [True , False ])
73
+ @pytest .mark .parametrize ('draft_message_in_current_session' , [
74
+ True , None ,
75
+ ], ids = [
76
+ 'different_saved_draft_in_current_session' ,
77
+ 'no_saved_draft_in_current_session' ,
78
+ ])
79
+ def test_keypress_SAVE_DRAFT_MESSAGE (self , key , mocker , stream_message ,
80
+ draft_message_in_current_session ,
81
+ write_box , widget_size ):
82
+ mocker .patch (BOXES + '.WriteBox.update_recipient_emails' )
83
+ (write_box .model .session_draft_message .
84
+ return_value ) = draft_message_in_current_session
85
+ write_box .stream_write_box = mocker .Mock (edit_text = "Current Stream" )
86
+ write_box .title_write_box = mocker .Mock (edit_text = "Topic" )
87
+ write_box .msg_write_box = mocker .Mock (edit_text = "Random message" )
88
+ write_box .
recipient_emails = [
'[email protected] ' ]
89
+
90
+ if stream_message :
91
+ write_box .stream_id = 1
92
+ draft = {
93
+ 'type' : 'stream' ,
94
+ 'to' : 'Current Stream' ,
95
+ 'content' : 'Random message' ,
96
+ 'subject' : 'Topic'
97
+ }
98
+ else :
99
+ write_box .to_write_box = mocker .Mock ()
100
+ draft = {
101
+ 'type' : 'private' ,
102
+
103
+ 'content' : 'Random message'
104
+ }
105
+
106
+ size = widget_size (write_box )
107
+ write_box .keypress (size , key )
108
+
109
+ if not draft_message_in_current_session :
110
+ write_box .model .save_draft .assert_called_once_with (draft )
111
+ else :
112
+ (write_box .view .controller .save_draft_confirmation_popup .
113
+ assert_called_once_with (draft ))
114
+ assert write_box .model .session_draft_message .called
115
+
71
116
@pytest .mark .parametrize ('text, state' , [
72
117
('Plain Text' , 0 ),
73
118
('Plain Text' , 1 ),
0 commit comments