diff --git a/integration_test/features/04_profile_mgmt/01_create_delete.feature b/integration_test/features/04_profile_mgmt/01_create_delete.feature index e69de29b..c9825ed9 100644 --- a/integration_test/features/04_profile_mgmt/01_create_delete.feature +++ b/integration_test/features/04_profile_mgmt/01_create_delete.feature @@ -0,0 +1,44 @@ +Feature: Basic Profile Management + Scenario: Error on Creating a Profile without a Display Name + Given I wait until the widget with type 'ProfileMgrView' is present + And I tap the button with tooltip "Add new profile" + Then I expect the text 'Display Name' to be present + And I expect the text 'New Password' to be present + And I expect the text 'Please enter a display name' to be absent + Then I tap the "button" widget with label "Add new profile" + And I expect the text 'Please enter a display name' to be present + And I take a screenshot + + Scenario: Create Unencrypted Profile + Given I wait until the widget with type 'ProfileMgrView' is present + And I tap the button with tooltip "Add new profile" + Then I expect the text 'Display Name' to be present + And I expect the text 'New Password' to be present + And I take a screenshot + Then I tap the "passwordCheckBox" widget + And I expect the text 'New Password' to be absent + And I take a screenshot + Then I fill the "displayNameFormElement" field with "Alice (

hello

)" + Then I tap the "button" widget with label "Add new profile" + And I expect a "ProfileRow" widget with text "Alice (

hello

)" + And I take a screenshot + Then I tap the "ProfileRow" widget with label "Alice (

hello

)" + And I expect the text 'Alice (

hello

) » Conversations' to be present + And I take a screenshot + + Scenario: Create Encrypted Profile + Given I wait until the widget with type 'ProfileMgrView' is present + And I tap the button with tooltip "Add new profile" + Then I expect the text 'Display Name' to be present + And I expect the text 'New Password' to be present + And I take a screenshot + Then I fill the "displayNameFormElement" field with "Alice (Encrypted)" + Then I fill the "passwordFormElement" field with "password1" + Then I fill the "confirmPasswordFormElement" field with "password1" + And I take a screenshot + Then I tap the "button" widget with label "Add new profile" + And I expect a "ProfileRow" widget with text "Alice (Encrypted)" + And I take a screenshot + Then I tap the "ProfileRow" widget with label "Alice (Encrypted)" + And I expect the text 'Alice (Encrypted) » Conversations' to be present + And I take a screenshot \ No newline at end of file diff --git a/integration_test/gherkin/reports/cucumber_report.html b/integration_test/gherkin/reports/cucumber_report.html deleted file mode 100644 index 37ec9777..00000000 --- a/integration_test/gherkin/reports/cucumber_report.html +++ /dev/null @@ -1,1714 +0,0 @@ - - - - Cucumber Feature Report - - - - - - - - -
- -
Mon Jan 31 2022 14:04:41 GMT-0800 (Pacific Standard Time)
- -
-
-
-
- - - - - - -
- - -
- -
-
- -
-
- - - -
- -
-
-
- - - -

-

- - - - - - - Given - I wait until the widget with type "ProfileRow" is present - - - - 1s 434ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I wait for 4 seconds - - - - 4s 101ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Given - I tap the button that contains the text "Alice" - - - - 571ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the button that contains the text "Bob" - - - - 598ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I wait until the text "Contact is offline, messages can't be delivered right now" is absent - - - - 10s 342ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - When - I fill the "txtCompose" field with "hello! this is a test!" - - - - 569ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the "btnSend" button - - - - 894ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Then - I expect a "MessageBubble" widget with text "hello! this is a test! " to be present within 5 seconds - - - - 111ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the back button - - - - 451ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the back button - - - - 508ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Given - I tap the button that contains the text "Bob" - - - - 621ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the button that contains the text "Alice" - - - - 611ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Then - I expect a "MessageBubble" widget with text "hello! this is a test! " to be present within 5 seconds - - - - 112ms - - - - - - - - - - - - - - - - -
-

- - -
-
-
- - -
- -
-
-
- - - -

-

- - - - - - - Given - I wait until the widget with type "ProfileRow" is present - - - - 1s 908ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I wait for 4 seconds - - - - 4s 101ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Given - I tap the button that contains the text "Alice" - - - - 611ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the button that contains the text "Bob" - - - - 617ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I wait until the text "Contact is offline, messages can't be delivered right now" is absent - - - - 13s 450ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - When - I fill the "txtCompose" field with "hello! this is a test!" - - - - 535ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the "btnSend" button - - - - 930ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Then - I expect a "MessageBubble" widget with text "hello! this is a test! " to be present within 5 seconds - - - - 105ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the back button - - - - 438ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the back button - - - - 518ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Given - I tap the button that contains the text "Bob" - - - - 611ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the button that contains the text "Alice" - - - - 621ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the button with tooltip "Reply to this message" - - - - 418ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I fill the "txtCompose" field with "yay the test worked" - - - - 535ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I tap the "btnSend" button - - - - 944ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - Then - I expect to see the message "yay the test worked " replying to "hello! this is a test!" within 5 seconds - - - - 138ms - - - - - - - - - - - - - - - - -
-

- - - -

-

- - - - - - - And - I take a screenshot - - - - 60ms - - - - - - - - - - - - - - - Screenshot + -
-
-                                        
-                                        
-                                
-
- -
- - - - - - -
-

- - -
-
-
- -
-
-
-
- -
- -
- - - -
- - - - - - - - - - - diff --git a/integration_test/gherkin/reports/integration_response_data.json b/integration_test/gherkin/reports/integration_response_data.json deleted file mode 100644 index 5bedb632..00000000 --- a/integration_test/gherkin/reports/integration_response_data.json +++ /dev/null @@ -1 +0,0 @@ -[{"description":"","id":"sending and receiving chat messages","keyword":"Feature","line":1,"name":"Sending and receiving chat messages","uri":"","tags":[{"line":1,"name":"@env:aliceandbob1"}],"elements":[{"keyword":"Scenario","type":"scenario","id":"sending and receiving chat messages;bob receives the message from alice","name":"Bob receives the message from Alice","description":"","line":1,"tags":[{"line":1,"name":"@env:aliceandbob1"}],"steps":[{"keyword":"Given ","name":"I wait until the widget with type \"ProfileRow\" is present","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":1434000000}},{"keyword":"And ","name":"I wait for 4 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":4101000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":571000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":598000000}},{"keyword":"And ","name":"I wait until the text \"Contact is offline, messages can't be delivered right now\" is absent","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":10342000000}},{"keyword":"When ","name":"I fill the \"txtCompose\" field with \"hello! this is a test!\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":569000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":894000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":111000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":451000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":508000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":621000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":112000000}}]},{"keyword":"Scenario","type":"scenario","id":"sending and receiving chat messages;bob replies to a message from alice","name":"Bob replies to a message from Alice","description":"","line":1,"tags":[{"line":1,"name":"@env:aliceandbob1"}],"steps":[{"keyword":"Given ","name":"I wait until the widget with type \"ProfileRow\" is present","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":1908000000}},{"keyword":"And ","name":"I wait for 4 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":4101000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":617000000}},{"keyword":"And ","name":"I wait until the text \"Contact is offline, messages can't be delivered right now\" is absent","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":13450000000}},{"keyword":"When ","name":"I fill the \"txtCompose\" field with \"hello! this is a test!\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":535000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":930000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":105000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":438000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":518000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":621000000}},{"keyword":"And ","name":"I tap the button with tooltip \"Reply to this message\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":418000000}},{"keyword":"And ","name":"I fill the \"txtCompose\" field with \"yay the test worked\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":535000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":944000000}},{"keyword":"Then ","name":"I expect to see the message \"yay the test worked \" replying to \"hello! this is a test!\" within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":138000000}},{"keyword":"And ","name":"I take a screenshot","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":60000000},"embeddings":[{"mime_type":"image/png","data":"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AECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABA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"}]}]}]}] \ No newline at end of file diff --git a/integration_test/gherkin/reports/json_report.json b/integration_test/gherkin/reports/json_report.json deleted file mode 100644 index 5bedb632..00000000 --- a/integration_test/gherkin/reports/json_report.json +++ /dev/null @@ -1 +0,0 @@ -[{"description":"","id":"sending and receiving chat messages","keyword":"Feature","line":1,"name":"Sending and receiving chat messages","uri":"","tags":[{"line":1,"name":"@env:aliceandbob1"}],"elements":[{"keyword":"Scenario","type":"scenario","id":"sending and receiving chat messages;bob receives the message from alice","name":"Bob receives the message from Alice","description":"","line":1,"tags":[{"line":1,"name":"@env:aliceandbob1"}],"steps":[{"keyword":"Given ","name":"I wait until the widget with type \"ProfileRow\" is present","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":1434000000}},{"keyword":"And ","name":"I wait for 4 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":4101000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":571000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":598000000}},{"keyword":"And ","name":"I wait until the text \"Contact is offline, messages can't be delivered right now\" is absent","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":10342000000}},{"keyword":"When ","name":"I fill the \"txtCompose\" field with \"hello! this is a test!\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":569000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":894000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":111000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":451000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":508000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":621000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":112000000}}]},{"keyword":"Scenario","type":"scenario","id":"sending and receiving chat messages;bob replies to a message from alice","name":"Bob replies to a message from Alice","description":"","line":1,"tags":[{"line":1,"name":"@env:aliceandbob1"}],"steps":[{"keyword":"Given ","name":"I wait until the widget with type \"ProfileRow\" is present","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":1908000000}},{"keyword":"And ","name":"I wait for 4 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":4101000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":617000000}},{"keyword":"And ","name":"I wait until the text \"Contact is offline, messages can't be delivered right now\" is absent","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":13450000000}},{"keyword":"When ","name":"I fill the \"txtCompose\" field with \"hello! this is a test!\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":535000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":930000000}},{"keyword":"Then ","name":"I expect a \"MessageBubble\" widget with text \"hello! this is a test! \" to be present within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":105000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":438000000}},{"keyword":"And ","name":"I tap the back button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":518000000}},{"keyword":"Given ","name":"I tap the button that contains the text \"Bob\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":611000000}},{"keyword":"And ","name":"I tap the button that contains the text \"Alice\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":621000000}},{"keyword":"And ","name":"I tap the button with tooltip \"Reply to this message\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":418000000}},{"keyword":"And ","name":"I fill the \"txtCompose\" field with \"yay the test worked\"","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":535000000}},{"keyword":"And ","name":"I tap the \"btnSend\" button","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":944000000}},{"keyword":"Then ","name":"I expect to see the message \"yay the test worked \" replying to \"hello! this is a test!\" within 5 seconds","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":138000000}},{"keyword":"And ","name":"I take a screenshot","line":1,"match":{"location":":1"},"result":{"status":"passed","duration":60000000},"embeddings":[{"mime_type":"image/png","data":"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AECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABAgQmAAAAAAFBgAiAAAAAAFJgACAAAAAAFJgACAAAAQIEJgAAAAABQYAIgAAAAABSYAAgAAAAABSYAAgAAAECBCYAAAAAAUGACIAAAAAAUmAAIAAAAAAUmAAIAAABA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"}]}]}]}] \ No newline at end of file diff --git a/integration_test/gherkin_suite_test.dart b/integration_test/gherkin_suite_test.dart deleted file mode 100644 index 036a4fb9..00000000 --- a/integration_test/gherkin_suite_test.dart +++ /dev/null @@ -1,96 +0,0 @@ -//import 'package:flutter_gherkin/flutter_gherkin_integration_test.dart'; // notice new import name -import 'package:flutter_gherkin/flutter_gherkin.dart'; -import 'package:flutter_test/flutter_test.dart'; -import 'package:gherkin/gherkin.dart'; - -import 'dart:io'; - -// The application under test. -import 'package:cwtch/main.dart' as app; -import 'package:glob/glob.dart'; - -import 'hooks/env.dart'; -import 'steps/chat.dart'; -import 'steps/files.dart'; -import 'steps/form_elements.dart'; -import 'steps/overrides.dart'; -import 'steps/text.dart'; -import 'steps/utils.dart'; - -part 'gherkin_suite_test.g.dart'; -const REPLACED_BY_SCRIPT = ['integration_test/features/**.feature']; - -@GherkinTestSuite(executionOrder: ExecutionOrder.alphabetical, featurePaths: ['./integration_test/features/05_p2p_chat/01_add_remove_block_archive.feature','./integration_test/features/05_p2p_chat/02_proto_invites.feature','./integration_test/features/05_p2p_chat/03_send_receive.feature','./integration_test/features/05_p2p_chat/04_special_messages.feature','./integration_test/features/05_p2p_chat/05_overlays_invite.feature','./integration_test/features/05_p2p_chat/06_overlays_file.feature','./integration_test/features/05_p2p_chat/07_overlays_image.feature']) -void main() { - final params = [ - SwitchStateParameter(), - ]; - - final steps = [ - // chat elements - ExpectReply(), - // form elements - CheckSwitchState(), - CheckSwitchStateWithText(), - DropdownChoose(), - // utils - TakeScreenshot(), - // overrides - TapWidgetWithType(), - TapFirstWidget(), - WaitUntilTypeExists(), - ExpectTextToBePresent(), - ExpectWidgetWithTextWithin(), - WaitUntilTextExists(), - SwipeOnType(), - // text - TorVersionPresent(), - TooltipTap(), - // files - FolderExists(), - FileExists(), - ]; - - var sb = StringBuffer(); - sb..writeln("## Custom Parameters\n") - ..writeln("| name | pattern |") - ..writeln("| --- | --- |"); - for (var i in params) { - sb..write("| ")..write(i.identifier)..write(" | ")..write(i.pattern.toString().replaceFirst("RegExp: pattern=","").replaceFirst(" flags=i",""))..writeln(" |"); - } - sb..writeln("\n## Custom steps\n") - ..writeln("| pattern |") - ..writeln("| --- |"); - for (var i in steps) { - sb.writeln(i.pattern.toString().replaceFirst("RegExp: pattern=", "| ").replaceFirst(" flags=", " |")); - } - var f = File("integration_test/CustomSteps.md"); - f.writeAsString(sb.toString()); - - executeTestSuite( - FlutterTestConfiguration.DEFAULT([]) - ..reporters = [ - StdoutReporter(MessageLevel.error) - ..setWriteLineFn(print) - ..setWriteFn(print), - ProgressReporter() - ..setWriteLineFn(print) - ..setWriteFn(print), - TestRunSummaryReporter() - ..setWriteLineFn(print) - ..setWriteFn(print), - JsonReporter( - writeReport: (_, __) => Future.value(), - ), - ] - ..customStepParameterDefinitions = [ - SwitchStateParameter(), - ] - ..stepDefinitions = steps - ..hooks = [ - ResetCwtchEnvironment(), - AttachScreenshotOnFailedStepHook(), - ], - (World world) => app.main(), - ); -} \ No newline at end of file diff --git a/integration_test/gherkin_suite_test.editable.dart b/integration_test/gherkin_suite_test.editable.dart index 2a14641f..6e38f100 100644 --- a/integration_test/gherkin_suite_test.editable.dart +++ b/integration_test/gherkin_suite_test.editable.dart @@ -37,7 +37,8 @@ void main() { TakeScreenshot(), // overrides TapWidgetWithType(), - TapFirstWidget(), + TapWidgetWithLabel(), + ExpectWidgetWithText(), WaitUntilTypeExists(), ExpectTextToBePresent(), ExpectWidgetWithTextWithin(), diff --git a/integration_test/gherkin_suite_test.g.dart b/integration_test/gherkin_suite_test.g.dart deleted file mode 100644 index 41f66782..00000000 --- a/integration_test/gherkin_suite_test.g.dart +++ /dev/null @@ -1,265 +0,0 @@ -// GENERATED CODE - DO NOT MODIFY BY HAND - -part of 'gherkin_suite_test.dart'; - -// ************************************************************************** -// GherkinSuiteTestGenerator -// ************************************************************************** - -class _CustomGherkinIntegrationTestRunner extends GherkinIntegrationTestRunner { - _CustomGherkinIntegrationTestRunner( - TestConfiguration configuration, - Future Function(World) appMainFunction, - ) : super(configuration, appMainFunction); - - @override - void onRun() { - testFeature2(); - } - - void testFeature2() { - runFeature( - 'Sending and receiving chat messages:', - ['@env:aliceandbob1'], - () { - runScenario( - 'Bob receives the message from Alice', - ['@env:aliceandbob1'], - (TestDependencies dependencies) async { - await runStep( - 'Given I wait until the widget with type "ProfileRow" is present', - [], - null, - dependencies, - ); - - await runStep( - 'And I wait for 4 seconds', - [], - null, - dependencies, - ); - - await runStep( - 'Given I tap the button that contains the text "Alice"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the button that contains the text "Bob"', - [], - null, - dependencies, - ); - - await runStep( - 'And I wait until the text "Contact is offline, messages can\'t be delivered right now" is absent', - [], - null, - dependencies, - ); - - await runStep( - 'When I fill the "txtCompose" field with "hello! this is a test!"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the "btnSend" button', - [], - null, - dependencies, - ); - - await runStep( - 'Then I expect a "MessageBubble" widget with text "hello! this is a test!\u202F" to be present within 5 seconds', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the back button', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the back button', - [], - null, - dependencies, - ); - - await runStep( - 'Given I tap the button that contains the text "Bob"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the button that contains the text "Alice"', - [], - null, - dependencies, - ); - - await runStep( - 'Then I expect a "MessageBubble" widget with text "hello! this is a test!\u202F" to be present within 5 seconds', - [], - null, - dependencies, - ); - }, - onBefore: () async => onBeforeRunFeature( - 'Sending and receiving chat messages', - ['@env:aliceandbob1'], - ), - onAfter: null, - ); - - runScenario( - 'Bob replies to a message from Alice', - ['@env:aliceandbob1'], - (TestDependencies dependencies) async { - await runStep( - 'Given I wait until the widget with type "ProfileRow" is present', - [], - null, - dependencies, - ); - - await runStep( - 'And I wait for 4 seconds', - [], - null, - dependencies, - ); - - await runStep( - 'Given I tap the button that contains the text "Alice"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the button that contains the text "Bob"', - [], - null, - dependencies, - ); - - await runStep( - 'And I wait until the text "Contact is offline, messages can\'t be delivered right now" is absent', - [], - null, - dependencies, - ); - - await runStep( - 'When I fill the "txtCompose" field with "hello! this is a test!"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the "btnSend" button', - [], - null, - dependencies, - ); - - await runStep( - 'Then I expect a "MessageBubble" widget with text "hello! this is a test!\u202F" to be present within 5 seconds', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the back button', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the back button', - [], - null, - dependencies, - ); - - await runStep( - 'Given I tap the button that contains the text "Bob"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the button that contains the text "Alice"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the button with tooltip "Reply to this message"', - [], - null, - dependencies, - ); - - await runStep( - 'And I fill the "txtCompose" field with "yay the test worked"', - [], - null, - dependencies, - ); - - await runStep( - 'And I tap the "btnSend" button', - [], - null, - dependencies, - ); - - await runStep( - 'Then I expect to see the message "yay the test worked\u202F" replying to "hello! this is a test!" within 5 seconds', - [], - null, - dependencies, - ); - - await runStep( - 'And I take a screenshot', - [], - null, - dependencies, - ); - }, - onBefore: null, - onAfter: () async => onAfterRunFeature( - 'Sending and receiving chat messages', - ), - ); - }, - ); - } -} - -void executeTestSuite( - TestConfiguration configuration, - Future Function(World) appMainFunction, -) { - _CustomGherkinIntegrationTestRunner(configuration, appMainFunction).run(); -} diff --git a/integration_test/index.js b/integration_test/index.js deleted file mode 100644 index 11d5ed1d..00000000 --- a/integration_test/index.js +++ /dev/null @@ -1,20 +0,0 @@ -var reporter = require('cucumber-html-reporter'); - -var options = { - theme: 'bootstrap', - jsonFile: 'gherkin/reports/integration_response_data.json', - output: 'gherkin/reports/index.html', - reportSuiteAsScenarios: true, - scenarioTimestamp: true, - launchReport: true, - metadata: { - "App Version":"0.3.2", - "Test Environment": "STAGING", - "Browser": "Chrome 54.0.2840.98", - "Platform": "Windows 10", - "Parallel": "Scenarios", - "Executed": "Remote" - } - }; - - reporter.generate(options); diff --git a/integration_test/steps/cwtch_profile_steps.dart b/integration_test/steps/cwtch_profile_steps.dart new file mode 100644 index 00000000..e69de29b diff --git a/integration_test/steps/overrides.dart b/integration_test/steps/overrides.dart index 716b8599..a9d647f4 100644 --- a/integration_test/steps/overrides.dart +++ b/integration_test/steps/overrides.dart @@ -27,14 +27,46 @@ StepDefinitionGeneric TapWidgetWithType() { ); } -StepDefinitionGeneric TapFirstWidget() { +StepDefinitionGeneric TapWidgetWithLabel() { + return given2( + RegExp(r'I tap the {string} widget with label {string}$'), + (ofType, text, context) async { + final finder = context.world.appDriver.findByDescendant( + context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), + context.world.appDriver.findBy(text, FindType.text), + firstMatchOnly: true); + //Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first); + //print(wdg.debugDescribeChildren().first.) + await context.world.appDriver.tap(finder); + await context.world.appDriver.waitForAppToSettle(); + }, + ); +} + +StepDefinitionGeneric ExpectWidgetWithText() { + return given2( + RegExp(r'I expect a {string} widget with text {string}$'), + (ofType, text, context) async { + final finder = context.world.appDriver.findByDescendant( + context.world.appDriver.findBy(widgetTypeByName(ofType), FindType.type), + context.world.appDriver.findBy(text, FindType.text), + firstMatchOnly: true); + //Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first); + //print(wdg.debugDescribeChildren().first.) + await context.world.appDriver.isPresent(finder); + await context.world.appDriver.waitForAppToSettle(); + }, + ); +} + +StepDefinitionGeneric TapButtonWithText() { return given1( - RegExp(r'I tap the first {string} (?:button|element|label|icon|field|text|widget)$'), + RegExp(r'I tap the {string} (?:button|element|label|icon|field|text|widget)$'), (input1, context) async { final finder = context.world.appDriver.findByDescendant( - context.world.appDriver.findBy(Flwtch, FindType.type), - context.world.appDriver.findBy(input1, FindType.key), - firstMatchOnly: true); + context.world.appDriver.findBy(Flwtch, FindType.type), + context.world.appDriver.findBy(input1, FindType.key), + firstMatchOnly: true); //Text wdg = await context.world.appDriver.widget(finder, ExpectedWidgetResultType.first); //print(wdg.debugDescribeChildren().first.) await context.world.appDriver.tap(finder); @@ -195,6 +227,10 @@ Type widgetTypeByName(String input1) { return ProfileRow; case "TorIcon": return TorIcon; + case "button": + return ElevatedButton; + case "ProfileRow": + return ProfileRow; default: throw("Unknown type $input1. add to integration_test/features/overrides.dart"); } diff --git a/lib/main.dart b/lib/main.dart index 1ac670ce..63aed68d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -51,14 +51,21 @@ class Flwtch extends StatefulWidget { } } -class FlwtchState extends State with WindowListener { +class FlwtchState extends State with WindowListener, WidgetsBindingObserver { final TextStyle biggerFont = const TextStyle(fontSize: 18); late Cwtch cwtch; late ProfileListState profs; final MethodChannel notificationClickChannel = MethodChannel('im.cwtch.flwtch/notificationClickHandler'); final MethodChannel shutdownMethodChannel = MethodChannel('im.cwtch.flwtch/shutdownClickHandler'); + final MethodChannel shutdownLinuxMethodChannel = MethodChannel('im.cwtch.linux.shutdown'); final GlobalKey navKey = GlobalKey(); + Future shutdownDirect(MethodCall call) { + print(call); + cwtch.Shutdown(); + return Future.value({}); + } + @override initState() { print("initState: running..."); @@ -69,6 +76,7 @@ class FlwtchState extends State with WindowListener { profs = ProfileListState(); notificationClickChannel.setMethodCallHandler(_externalNotificationClicked); shutdownMethodChannel.setMethodCallHandler(modalShutdown); + shutdownLinuxMethodChannel.setMethodCallHandler(shutdownDirect); print("initState: creating cwtchnotifier, ffi"); if (Platform.isAndroid) { var cwtchNotifier = new CwtchNotifier(profs, globalSettings, globalErrorHandler, globalTorStatus, NullNotificationsManager(), globalAppState, globalServersList); @@ -178,6 +186,7 @@ class FlwtchState extends State with WindowListener { // coder beware: args["RemotePeer"] is actually a handle, and could be eg a groupID Future _externalNotificationClicked(MethodCall call) async { var args = jsonDecode(call.arguments); + var profile = profs.getProfile(args["ProfileOnion"])!; var convo = profile.contactList.getContact(args["Handle"])!; Provider.of(navKey.currentContext!, listen: false).initialScrollIndex = convo.unreadMessages; @@ -222,6 +231,7 @@ class FlwtchState extends State with WindowListener { globalAppState.focus = false; } + @override void dispose() { cwtch.Shutdown(); diff --git a/lib/notification_manager.dart b/lib/notification_manager.dart index 1a0200fe..91f1cb52 100644 --- a/lib/notification_manager.dart +++ b/lib/notification_manager.dart @@ -54,7 +54,7 @@ class WindowsNotificationManager implements NotificationsManager { } // clicked if (event is ToastActivated) { - active = false; + active = false; } // if a supplied action was clicked if (event is ToastInteracted) { diff --git a/lib/views/addeditprofileview.dart b/lib/views/addeditprofileview.dart index 7d084f5a..01f3b2c0 100644 --- a/lib/views/addeditprofileview.dart +++ b/lib/views/addeditprofileview.dart @@ -104,6 +104,7 @@ class _AddEditProfileViewState extends State { height: 20, ), CwtchTextField( + key: Key("displayNameFormElement"), controller: ctrlrNick, autofocus: false, hintText: AppLocalizations.of(context)!.yourDisplayName, @@ -146,6 +147,7 @@ class _AddEditProfileViewState extends State { visible: Provider.of(context).onion.isEmpty, child: Column(mainAxisAlignment: MainAxisAlignment.center, children: [ Checkbox( + key: Key("passwordCheckBox"), value: usePassword, fillColor: MaterialStateProperty.all(theme.current().defaultButtonColor), activeColor: theme.current().defaultButtonActiveColor, @@ -179,6 +181,7 @@ class _AddEditProfileViewState extends State { height: 20, ), CwtchPasswordField( + key: Key("currentPasswordFormElement"), controller: ctrlrOldPass, autoFillHints: [AutofillHints.newPassword], validator: (value) { @@ -204,6 +207,7 @@ class _AddEditProfileViewState extends State { height: 20, ), CwtchPasswordField( + key: Key("passwordFormElement"), controller: ctrlrPass, validator: (value) { // Password field can be empty when just updating the profile, not on creation @@ -224,6 +228,7 @@ class _AddEditProfileViewState extends State { height: 20, ), CwtchPasswordField( + key: Key("confirmPasswordFormElement"), controller: ctrlrPass2, validator: (value) { // Password field can be empty when just updating the profile, not on creation diff --git a/lib/views/messageview.dart b/lib/views/messageview.dart index bd8296c0..8db678ff 100644 --- a/lib/views/messageview.dart +++ b/lib/views/messageview.dart @@ -179,13 +179,14 @@ class _MessageViewState extends State { // size because of the additional wrapping end encoding // hybrid groups should allow these numbers to be the same. static const P2PMessageLengthMax = 7000; - static const GroupMessageLengthMax = 1800; + static const GroupMessageLengthMax = 1600; void _sendMessage([String? ignoredParam]) { var isGroup = Provider.of(context, listen: false).contactList.getContact(Provider.of(context, listen: false).selectedConversation!)!.isGroup; // peers and groups currently have different length constraints (servers can store less)... - var lengthOk = (isGroup && ctrlrCompose.value.text.length < GroupMessageLengthMax) || ctrlrCompose.value.text.length <= P2PMessageLengthMax; + var actualMessageLength = ctrlrCompose.value.text.length; + var lengthOk = (isGroup && actualMessageLength < GroupMessageLengthMax) || actualMessageLength <= P2PMessageLengthMax; if (ctrlrCompose.value.text.isNotEmpty && lengthOk) { if (Provider.of(context, listen: false).selectedConversation != null && Provider.of(context, listen: false).selectedIndex != null) { @@ -250,6 +251,10 @@ class _MessageViewState extends State { bool isOffline = Provider.of(context).isOnline() == false; bool isGroup = Provider.of(context).isGroup; + var charLength = ctrlrCompose.value.text.characters.length; + var expectedLength = ctrlrCompose.value.text.length; + var numberOfBytesMoreThanChar = (expectedLength - charLength); + var composeBox = Container( color: Provider.of(context).theme.backgroundMainColor, padding: EdgeInsets.all(2), @@ -274,11 +279,16 @@ class _MessageViewState extends State { keyboardType: TextInputType.multiline, enableIMEPersonalizedLearning: false, minLines: 1, - maxLength: isGroup ? GroupMessageLengthMax : P2PMessageLengthMax, + maxLength: (isGroup ? GroupMessageLengthMax : P2PMessageLengthMax) - numberOfBytesMoreThanChar, maxLengthEnforcement: MaxLengthEnforcement.enforced, maxLines: null, onFieldSubmitted: _sendMessage, enabled: !isOffline, + onChanged: (String x) { + setState(() { + // we need to force a rerender here to update the max length count + }); + }, decoration: InputDecoration( hintText: isOffline ? "" : AppLocalizations.of(context)!.placeholderEnterMessage, hintStyle: TextStyle(color: Provider.of(context).theme.sendHintTextColor), diff --git a/lib/widgets/passwordfield.dart b/lib/widgets/passwordfield.dart index ede308ad..83dd5d76 100644 --- a/lib/widgets/passwordfield.dart +++ b/lib/widgets/passwordfield.dart @@ -9,20 +9,26 @@ const hints = [AutofillHints.password]; // Provides a styled Password Input Field for use in Form Widgets. // Callers must provide a text controller, label helper text and a validator. class CwtchPasswordField extends StatefulWidget { - CwtchPasswordField({required this.controller, required this.validator, this.action, this.autofocus = false, this.autoFillHints = hints}); + CwtchPasswordField({required this.controller, required this.validator, this.action, this.autofocus = false, this.autoFillHints = hints, this.key}); final TextEditingController controller; final FormFieldValidator validator; final Function(String)? action; final bool autofocus; final Iterable autoFillHints; + final Key? key; @override - _CwtchTextFieldState createState() => _CwtchTextFieldState(); + _CwtchPasswordTextFieldState createState() => _CwtchPasswordTextFieldState(); } -class _CwtchTextFieldState extends State { +class _CwtchPasswordTextFieldState extends State { bool obscureText = true; + @override + void initState() { + super.initState(); + } + @override Widget build(BuildContext context) { // todo: translations @@ -42,7 +48,6 @@ class _CwtchTextFieldState extends State { autofillHints: widget.autoFillHints, autovalidateMode: AutovalidateMode.always, onFieldSubmitted: widget.action, - textInputAction: TextInputAction.unspecified, enableSuggestions: false, autocorrect: false, decoration: InputDecoration( diff --git a/lib/widgets/textfield.dart b/lib/widgets/textfield.dart index d7d3f5fd..7545618b 100644 --- a/lib/widgets/textfield.dart +++ b/lib/widgets/textfield.dart @@ -8,7 +8,7 @@ doNothing(String x) {} // Provides a styled Text Field for use in Form Widgets. // Callers must provide a text controller, label helper text and a validator. class CwtchTextField extends StatefulWidget { - CwtchTextField({required this.controller, this.hintText = "", this.validator, this.autofocus = false, this.onChanged = doNothing, this.number = false, this.multiLine = false}); + CwtchTextField({required this.controller, this.hintText = "", this.validator, this.autofocus = false, this.onChanged = doNothing, this.number = false, this.multiLine = false, this.key}); final TextEditingController controller; final String hintText; final FormFieldValidator? validator; @@ -16,6 +16,7 @@ class CwtchTextField extends StatefulWidget { final bool autofocus; final bool multiLine; final bool number; + final Key? key; @override _CwtchTextFieldState createState() => _CwtchTextFieldState(); diff --git a/linux/my_application.cc b/linux/my_application.cc index 117ef5cd..07ad9a37 100644 --- a/linux/my_application.cc +++ b/linux/my_application.cc @@ -21,6 +21,8 @@ struct _MyApplication { char** dart_entrypoint_arguments; }; + FlMethodChannel* channel; + // Redefining from flutter/engine::shell/platform/linux/fl_dart_project.cc // struct def required here to enable compiler to allow access to variables struct _FlDartProject { @@ -35,6 +37,19 @@ struct _FlDartProject { G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) +#include + + + +gboolean +on_shutdown(GtkWidget *widget, GdkEvent *event, gpointer data) +{ + fl_method_channel_invoke_method(channel, "onWindowClose", + nullptr, nullptr, nullptr, nullptr); + return TRUE; +} + + // Implements GApplication::activate. static void my_application_activate(GApplication* application) { MyApplication* self = MY_APPLICATION(application); @@ -72,6 +87,9 @@ static void my_application_activate(GApplication* application) { gtk_window_set_default_size(window, 1280, 720); gtk_widget_show(GTK_WIDGET(window)); + g_signal_connect(G_OBJECT(window), + "destroy", G_CALLBACK(on_shutdown), NULL); + g_autoptr(FlDartProject) project = fl_dart_project_new(); // Check if assets folder is relative to the executable or if we can use a system copy @@ -113,11 +131,22 @@ static void my_application_activate(GApplication* application) { gtk_widget_show(GTK_WIDGET(view)); gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); - fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + // Create a specific channel for shutting down cwtch when the close button is triggered + // We have registered the "destroy" handle above for this reason + FlEngine *engine = fl_view_get_engine(view); + g_autoptr(FlStandardMethodCodec) codec = fl_standard_method_codec_new(); + g_autoptr(FlBinaryMessenger) messenger = fl_engine_get_binary_messenger(engine); + channel = + fl_method_channel_new(messenger, + "im.cwtch.linux.shutdown", FL_METHOD_CODEC(codec)); + gtk_widget_grab_focus(GTK_WIDGET(view)); } + + // Implements GApplication::local_command_line. static gboolean my_application_local_command_line(GApplication* application, gchar ***arguments, int *exit_status) { MyApplication* self = MY_APPLICATION(application); diff --git a/run-tests.sh b/run-tests.sh index a0acb77e..2c101fc6 100755 --- a/run-tests.sh +++ b/run-tests.sh @@ -1,10 +1,9 @@ #!/bin/bash -pkill tor -paths=$(find . -wholename "./integration_test/features/05*/*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/") +paths=$(find . -wholename "./integration_test/features/*/$1*.feature" | sort | sed -z "s/\\n/','/g;s/,'$//;s/^/'/") sed "s|featurePaths: REPLACED_BY_SCRIPT|featurePaths: [$paths]|" integration_test/gherkin_suite_test.editable.dart > integration_test/gherkin_suite_test.dart flutter pub run build_runner clean flutter pub run build_runner build --delete-conflicting-outputs -LD_LIBRARY_PATH=/home/erinn/Android/Goprojects/libcwtch-go/ CWTCH_HOME=./integration_test/env/temp/ flutter drive --driver=test_driver/integration_test_driver.dart --target=integration_test/gherkin_suite_test.dart +LD_LIBRARY_PATH=./linux/ CWTCH_HOME=./integration_test/env/temp/ flutter drive --driver=test_driver/integration_test_driver.dart --target=integration_test/gherkin_suite_test.dart node index2.js xdg-open integration_test/gherkin/reports/cucumber_report.html