commit
475811518a
|
@ -1,4 +1,4 @@
|
|||
@mod @mod_courses @app @app_upto3.9.4 @javascript
|
||||
@mod @mod_courses @app @javascript
|
||||
Feature: Test basic usage of courses in app
|
||||
In order to participate in the courses while using the mobile app
|
||||
As a student
|
||||
|
@ -34,81 +34,77 @@ Feature: Test basic usage of courses in app
|
|||
| activity | course | idnumber | name | intro | assignsubmission_onlinetext_enabled |
|
||||
| assign | C1 | assign1 | assignment | Test assignment description | 1 |
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: "Dashboard" tab displayed in >= 3.3 sites
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
Then I should see "Dashboard"
|
||||
And the header should be "Acceptance test site" in the app
|
||||
And I should see "Course 1"
|
||||
And I should see "Course 2"
|
||||
And I should see "Course 3"
|
||||
And I should find "Course 1" in the app
|
||||
And I should find "Course 2" in the app
|
||||
And I should find "Course 3" in the app
|
||||
|
||||
When I press "Site home" in the app
|
||||
Then I should see "Dashboard"
|
||||
Then I should find "Dashboard" in the app
|
||||
And the header should be "Acceptance test site" in the app
|
||||
|
||||
When I press "Dashboard" in the app
|
||||
Then I should see "Course 1"
|
||||
And I should see "Course 2"
|
||||
And I should see "Course 3"
|
||||
Then I should find "Course 1" in the app
|
||||
And I should find "Course 2" in the app
|
||||
And I should find "Course 3" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: See my courses
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
Then the header should be "Acceptance test site" in the app
|
||||
And I should see "Course 1"
|
||||
And I should see "Course 2"
|
||||
And I should see "Course 3"
|
||||
And I should find "Course 1" in the app
|
||||
And I should find "Course 2" in the app
|
||||
And I should find "Course 3" in the app
|
||||
|
||||
When I press "Course 1" near "Recently accessed courses" in the app
|
||||
Then I should see "Choice course 1"
|
||||
Then I should find "Choice course 1" in the app
|
||||
And the header should be "Course 1" in the app
|
||||
|
||||
When I press "Choice course 1" in the app
|
||||
Then I should see "Test choice description"
|
||||
Then I should find "Test choice description" in the app
|
||||
And the header should be "Choice course 1" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press the back button in the app
|
||||
And I press "Course 2" near "Recently accessed courses" in the app
|
||||
Then I should see "Choice course 2"
|
||||
Then I should find "Choice course 2" in the app
|
||||
And the header should be "Course 2" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Course 3" near "Recently accessed courses" in the app
|
||||
Then I should see "Choice course 3"
|
||||
Then I should find "Choice course 3" in the app
|
||||
And the header should be "Course 3" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Search for a course
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
And I press "Search courses" in the app
|
||||
And I set the field "Search" to "Course 4" in the app
|
||||
And I press "Search" in the app
|
||||
Then I should see "Course 4"
|
||||
And I press "Search" "button" in the app
|
||||
Then I should find "Course 4" in the app
|
||||
And the header should be "Search courses" in the app
|
||||
|
||||
When I press "Course 4" in the app
|
||||
Then I should see "Course 4"
|
||||
Then I should find "Course 4" in the app
|
||||
And the header should be "Course 4" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I set the field "Search" to "Course" in the app
|
||||
And I press "Search" in the app
|
||||
Then I should see "Course 1"
|
||||
And I should see "Course 2"
|
||||
And I should see "Course 3"
|
||||
And I should see "Course 4"
|
||||
And I press "Search" "button" in the app
|
||||
Then I should find "Course 1" in the app
|
||||
And I should find "Course 2" in the app
|
||||
And I should find "Course 3" in the app
|
||||
And I should find "Course 4" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Links to actions in Timeline work for teachers/students
|
||||
# Configure assignment as teacher
|
||||
When I enter the app
|
||||
And I log in as "teacher1"
|
||||
Then I should see "Timeline"
|
||||
Then I should find "Timeline" in the app
|
||||
|
||||
Given I press "Course 1" near "Recently accessed courses" in the app
|
||||
And I press "assignment" in the app
|
||||
|
@ -129,9 +125,9 @@ Feature: Test basic usage of courses in app
|
|||
And I log in as "student1"
|
||||
And I press "Add submission" in the app
|
||||
Then the header should be "assignment" in the app
|
||||
And I should see "Test assignment description"
|
||||
And I should see "No attempt"
|
||||
And I should see "Due date"
|
||||
And I should find "Test assignment description" in the app
|
||||
And I should find "No attempt" in the app
|
||||
And I should find "Due:" in the app
|
||||
|
||||
When I press "Add submission" in the app
|
||||
And I set the field "Online text submissions" to "test" in the app
|
||||
|
@ -139,18 +135,18 @@ Feature: Test basic usage of courses in app
|
|||
And I press "Submit assignment" in the app
|
||||
And I press "OK" in the app
|
||||
Then the header should be "assignment" in the app
|
||||
And I should see "Test assignment description"
|
||||
And I should see "Submitted for grading"
|
||||
And I should see "Due date"
|
||||
And I should find "Test assignment description" in the app
|
||||
And I should find "Submitted for grading" in the app
|
||||
And I should find "Due:" in the app
|
||||
|
||||
# Grade assignment as teacher
|
||||
When I enter the app
|
||||
And I log in as "teacher1"
|
||||
And I press "Grade" in the app
|
||||
Then the header should be "assignment" in the app
|
||||
And I should see "Test assignment description"
|
||||
And I should see "Time remaining"
|
||||
And I should find "Test assignment description" in the app
|
||||
And I should find "Time remaining" in the app
|
||||
|
||||
When I press "Needs grading" in the app
|
||||
Then I should see "Student student"
|
||||
And I should see "Not graded"
|
||||
Then I should find "Student student" in the app
|
||||
And I should find "Not graded" in the app
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
@mod @mod_forum @app @app_upto3.9.4 @javascript
|
||||
@mod @mod_forum @app @javascript
|
||||
Feature: Test basic usage of forum activity in app
|
||||
In order to participate in the forum while using the mobile app
|
||||
As a student
|
||||
|
@ -24,7 +24,6 @@ Feature: Test basic usage of forum activity in app
|
|||
| activity | name | intro | course | idnumber | groupmode | assessed | scale |
|
||||
| forum | Test forum name | Test forum | C1 | forum | 0 | 1 | 1 |
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Create new discussion
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -34,12 +33,11 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "My happy subject" in the app
|
||||
And I set the field "Message" to "An awesome message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "My happy subject"
|
||||
Then I should find "My happy subject" in the app
|
||||
|
||||
When I press "My happy subject" in the app
|
||||
Then I should see "An awesome message"
|
||||
Then I should find "An awesome message" in the app
|
||||
|
||||
@app_from3.7
|
||||
Scenario: Reply a post
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -50,15 +48,14 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Message" to "DiscussionMessage" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "DiscussionSubject" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Reply" in the app
|
||||
And I set the field "Write your reply" to "ReplyMessage" in the app
|
||||
And I set the field "Message" to "ReplyMessage" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionMessage"
|
||||
And I should see "ReplyMessage"
|
||||
Then I should find "DiscussionMessage" in the app
|
||||
And I should find "ReplyMessage" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Star and pin discussions (student)
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -73,29 +70,28 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Message" to "normal message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "starred subject" in the app
|
||||
Then I should see "starred message"
|
||||
Then I should find "starred message" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Display options" near "starred subject" in the app
|
||||
And I press "Star this discussion" in the app
|
||||
And I press "starred subject" in the app
|
||||
Then I should see "starred message"
|
||||
Then I should find "starred message" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "normal subject" in the app
|
||||
Then I should see "normal message"
|
||||
Then I should find "normal message" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Display options" near "starred subject" in the app
|
||||
And I press "Unstar this discussion" in the app
|
||||
And I press "starred subject" in the app
|
||||
Then I should see "starred message"
|
||||
Then I should find "starred message" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "normal subject" in the app
|
||||
Then I should see "normal message"
|
||||
Then I should find "normal message" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Star and pin discussions (teacher)
|
||||
When I enter the app
|
||||
And I log in as "teacher1"
|
||||
|
@ -117,35 +113,17 @@ Feature: Test basic usage of forum activity in app
|
|||
And I press "Star this discussion" in the app
|
||||
And I press "Display options" near "Auto-test pin" in the app
|
||||
And I press "Pin this discussion" in the app
|
||||
Then I should see "Auto-test pin"
|
||||
And I should see "Auto-test star"
|
||||
And I should see "Auto-test plain"
|
||||
Then I should find "Auto-test pin" in the app
|
||||
And I should find "Auto-test star" in the app
|
||||
And I should find "Auto-test plain" in the app
|
||||
|
||||
When I press "Display options" near "Auto-test pin" in the app
|
||||
And I press "Unpin this discussion" in the app
|
||||
And I press "Display options" near "Auto-test star" in the app
|
||||
And I press "Unstar this discussion" in the app
|
||||
Then I should see "Auto-test star"
|
||||
And I should see "Auto-test pin"
|
||||
Then I should find "Auto-test star" in the app
|
||||
And I should find "Auto-test pin" in the app
|
||||
|
||||
@app_upto3.6.0
|
||||
Scenario: Star and pin discussions (teacher in 3.6)
|
||||
When I enter the app
|
||||
And I log in as "teacher1"
|
||||
And I press "Course 1" near "Course overview" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Add a new discussion topic" in the app
|
||||
And I set the field "Subject" to "Auto-test" in the app
|
||||
And I set the field "Message" to "Auto-test message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "Auto-test" in the app
|
||||
Then I should see "Reply"
|
||||
|
||||
When I press "Information" in the app
|
||||
Then I should not see "Star this discussion"
|
||||
And I should not see "Pin this discussion"
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Edit a not sent reply offline
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -156,32 +134,31 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Message" to "Auto-test message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
And I should see "Reply"
|
||||
And I should find "Reply" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I switch offline mode to "true"
|
||||
And I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Reply" in the app
|
||||
And I set the field "Write your reply..." to "not sent reply" in the app
|
||||
And I set the field "Message" to "not sent reply" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "Display options" near "not sent reply" in the app
|
||||
Then I should see "Edit"
|
||||
Then I should find "Edit" in the app
|
||||
|
||||
When I press "Edit" in the app
|
||||
And I set the field "Write your reply..." to "not sent reply edited" in the app
|
||||
And I set the field "Message" to "not sent reply edited" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "Not sent"
|
||||
And I should see "This Discussion has offline data to be synchronised"
|
||||
Then I should find "Not sent" in the app
|
||||
And I should find "This Discussion has offline data to be synchronised" in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I press the back button in the app
|
||||
And I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should not see "Not sent"
|
||||
And I should not see "This Discussion has offline data to be synchronised"
|
||||
Then I should not find "Not sent" in the app
|
||||
And I should not find "This Discussion has offline data to be synchronised" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Edit a not sent new discussion offline
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -195,19 +172,18 @@ Feature: Test basic usage of forum activity in app
|
|||
And I press "Auto-test" in the app
|
||||
And I set the field "Message" to "Auto-test message edited" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "This Forum has offline data to be synchronised."
|
||||
Then I should find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I press "Auto-test" in the app
|
||||
Then I should see "Post to forum"
|
||||
Then I should find "Post to forum" in the app
|
||||
|
||||
When I press "Post to forum" in the app
|
||||
Then I should not see "This Forum has offline data to be synchronised."
|
||||
Then I should not find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
And I should see "Auto-test message edited"
|
||||
And I should find "Auto-test message edited" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Edit a forum post (only online)
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -217,26 +193,25 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "Auto-test" in the app
|
||||
And I set the field "Message" to "Auto-test message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "Auto-test"
|
||||
Then I should find "Auto-test" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Display options" in the app
|
||||
And I press "Show download options" in the app
|
||||
And I press "cloud download" near "Test forum name" in the app
|
||||
And I press "Download" near "Test forum name" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Display options" near "Reply" in the app
|
||||
Then I should see "Edit"
|
||||
Then I should find "Edit" in the app
|
||||
|
||||
When I press "Edit" in the app
|
||||
And I switch offline mode to "true"
|
||||
And I set the field "Write your reply..." to "Auto-test message edited" in the app
|
||||
And I set the field "Message" to "Auto-test message edited" in the app
|
||||
And I press "Save changes" in the app
|
||||
Then I should see "There was a problem connecting to the site. Please check your connection and try again."
|
||||
Then I should find "There was a problem connecting to the site. Please check your connection and try again." in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Delete a forum post (only online)
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -246,32 +221,31 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "Auto-test" in the app
|
||||
And I set the field "Message" to "Auto-test message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "Auto-test"
|
||||
Then I should find "Auto-test" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Display options" in the app
|
||||
And I press "Show download options" in the app
|
||||
And I press "cloud download" near "Test forum name" in the app
|
||||
And I press "Download" near "Test forum name" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Auto-test" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Display options" near "Reply" in the app
|
||||
Then I should see "Delete"
|
||||
Then I should find "Delete" in the app
|
||||
|
||||
When I press "Delete" in the app
|
||||
And I press "Cancel" in the app
|
||||
And I switch offline mode to "true"
|
||||
And I press "Display options" near "Reply" in the app
|
||||
Then I should not see "Delete"
|
||||
Then I should not find "Delete" in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I press "Display options" near "Reply" in the app
|
||||
And I press "Delete" in the app
|
||||
And I press "Delete" in the app
|
||||
Then I should not see "Auto-test"
|
||||
Then I should not find "Auto-test" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Add/view ratings
|
||||
Given I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -282,50 +256,49 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Message" to "Auto-test message" in the app
|
||||
And I press "Post to forum" in the app
|
||||
And I press "Auto-test" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Reply" in the app
|
||||
And I set the field "Write your reply..." to "test2" in the app
|
||||
And I set the field "Message" to "test2" in the app
|
||||
And I press "Post to forum" in the app
|
||||
When I enter the app
|
||||
And I log in as "teacher1"
|
||||
And I press "Course 1" near "Course overview" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Auto-test" in the app
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "None" near "Auto-test message" in the app
|
||||
And I press "1" near "Cancel" in the app
|
||||
And I switch offline mode to "true"
|
||||
And I press "None" near "test2" in the app
|
||||
And I press "0" near "Cancel" in the app
|
||||
Then I should see "Data stored in the device because it couldn't be sent. It will be sent automatically later."
|
||||
And I should see "Average of ratings: -"
|
||||
And I should see "Average of ratings: 1"
|
||||
Then I should find "Data stored in the device because it couldn't be sent. It will be sent automatically later." in the app
|
||||
And I should find "Average of ratings: -" in the app
|
||||
And I should find "Average of ratings: 1" in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I press the back button in the app
|
||||
Then I should see "This Forum has offline data to be synchronised."
|
||||
Then I should find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I press "Display options" near "Test forum name" in the app
|
||||
And I press "Synchronise now" in the app
|
||||
Then I should not see "This Forum has offline data to be synchronised."
|
||||
Then I should not find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I press "Auto-test" in the app
|
||||
Then I should see "Average of ratings: 1"
|
||||
And I should see "Average of ratings: 0"
|
||||
But I should not see "Average of ratings: -"
|
||||
Then I should find "Average of ratings: 1" in the app
|
||||
And I should find "Average of ratings: 0" in the app
|
||||
But I should not find "Average of ratings: -" in the app
|
||||
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
And I press "Course 1" near "Course overview" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Auto-test" in the app
|
||||
Then I should see "Average of ratings: 1"
|
||||
And I should see "Average of ratings: 0"
|
||||
But I should not see "Average of ratings: -"
|
||||
Then I should find "Average of ratings: 1" in the app
|
||||
And I should find "Average of ratings: 0" in the app
|
||||
But I should not find "Average of ratings: -" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Reply a post offline
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -338,27 +311,26 @@ Feature: Test basic usage of forum activity in app
|
|||
And I press the back button in the app
|
||||
And I press "Display options" in the app
|
||||
And I press "Show download options" in the app
|
||||
And I press "cloud download" near "Test forum name" in the app
|
||||
And I press "Download" near "Test forum name" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "DiscussionSubject" in the app
|
||||
And I switch offline mode to "true"
|
||||
Then I should see "Reply"
|
||||
Then I should find "Reply" in the app
|
||||
|
||||
When I press "Reply" in the app
|
||||
And I set the field "Write your reply" to "ReplyMessage" in the app
|
||||
And I set the field "Message" to "ReplyMessage" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionMessage"
|
||||
And I should see "ReplyMessage"
|
||||
And I should see "Not sent"
|
||||
Then I should find "DiscussionMessage" in the app
|
||||
And I should find "ReplyMessage" in the app
|
||||
And I should find "Not sent" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I switch offline mode to "false"
|
||||
And I press "DiscussionSubject" in the app
|
||||
Then I should see "DiscussionMessage"
|
||||
And I should see "ReplyMessage"
|
||||
But I should not see "Not sent"
|
||||
Then I should find "DiscussionMessage" in the app
|
||||
And I should find "ReplyMessage" in the app
|
||||
But I should not find "Not sent" in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: New discussion offline & Sync Forum
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -369,9 +341,9 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "DiscussionSubject" in the app
|
||||
And I set the field "Message" to "DiscussionMessage" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionSubject"
|
||||
And I should see "Not sent"
|
||||
And I should see "This Forum has offline data to be synchronised."
|
||||
Then I should find "DiscussionSubject" in the app
|
||||
And I should find "Not sent" in the app
|
||||
And I should find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I press the back button in the app
|
||||
|
@ -379,12 +351,11 @@ Feature: Test basic usage of forum activity in app
|
|||
And I press "Display options" near "Test forum name" in the app
|
||||
And I press "Refresh discussions" in the app
|
||||
And I press "DiscussionSubject" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should see "DiscussionSubject"
|
||||
And I should see "DiscussionMessage"
|
||||
But I should not see "Not sent"
|
||||
And I should not see "This Forum has offline data to be synchronised."
|
||||
Then I should find "DiscussionSubject" in the app
|
||||
And I should find "DiscussionMessage" in the app
|
||||
But I should not find "Not sent" in the app
|
||||
And I should not find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: New discussion offline & Auto-sync forum
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -395,22 +366,21 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "DiscussionSubject" in the app
|
||||
And I set the field "Message" to "DiscussionMessage" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionSubject"
|
||||
And I should see "Not sent"
|
||||
And I should see "This Forum has offline data to be synchronised."
|
||||
Then I should find "DiscussionSubject" in the app
|
||||
And I should find "Not sent" in the app
|
||||
And I should find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
When I switch offline mode to "false"
|
||||
And I run cron tasks in the app
|
||||
And I wait loading to finish in the app
|
||||
Then I should not see "Not sent"
|
||||
Then I should not find "Not sent" in the app
|
||||
|
||||
When I press "DiscussionSubject" near "Sort by last post creation date in descending order" in the app
|
||||
Then I should see "DiscussionSubject"
|
||||
And I should see "DiscussionMessage"
|
||||
But I should not see "Not sent"
|
||||
And I should not see "This Forum has offline data to be synchronised."
|
||||
Then I should find "DiscussionSubject" in the app
|
||||
And I should find "DiscussionMessage" in the app
|
||||
But I should not find "Not sent" in the app
|
||||
And I should not find "This Forum has offline data to be synchronised." in the app
|
||||
|
||||
@app @3.8.0
|
||||
Scenario: Prefetch
|
||||
When I enter the app
|
||||
And I log in as "student1"
|
||||
|
@ -420,29 +390,31 @@ Feature: Test basic usage of forum activity in app
|
|||
And I set the field "Subject" to "DiscussionSubject 1" in the app
|
||||
And I set the field "Message" to "DiscussionMessage 1" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionSubject 1"
|
||||
Then I should find "DiscussionSubject 1" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I press "Display options" in the app
|
||||
And I press "Show download options" in the app
|
||||
And I press "cloud download" near "Test forum name" in the app
|
||||
And I press "Test forum name" in the app
|
||||
And I press "Download" near "Test forum name" in the app
|
||||
Then I should find "Downloaded" near "Test forum name" in the app
|
||||
|
||||
When I press "Test forum name" in the app
|
||||
And I press "Add a new discussion topic" in the app
|
||||
And I set the field "Subject" to "DiscussionSubject 2" in the app
|
||||
And I set the field "Message" to "DiscussionMessage 2" in the app
|
||||
And I press "Post to forum" in the app
|
||||
Then I should see "DiscussionSubject 1"
|
||||
And I should see "DiscussionSubject 2"
|
||||
Then I should find "DiscussionSubject 1" in the app
|
||||
And I should find "DiscussionSubject 2" in the app
|
||||
|
||||
When I press the back button in the app
|
||||
And I switch offline mode to "true"
|
||||
And I press "Test forum name" in the app
|
||||
And I press "DiscussionSubject 2" in the app
|
||||
Then I should see "There was a problem connecting to the site. Please check your connection and try again."
|
||||
Then I should find "There was a problem connecting to the site. Please check your connection and try again." in the app
|
||||
|
||||
When I press "OK" in the app
|
||||
And I press the back button in the app
|
||||
And I press "DiscussionSubject 1" in the app
|
||||
Then I should see "DiscussionSubject 1"
|
||||
And I should see "DiscussionMessage 1"
|
||||
But I should not see "There was a problem connecting to the site. Please check your connection and try again."
|
||||
Then I should find "DiscussionSubject 1" in the app
|
||||
And I should find "DiscussionMessage 1" in the app
|
||||
But I should not find "There was a problem connecting to the site. Please check your connection and try again." in the app
|
||||
|
|
|
@ -734,7 +734,7 @@
|
|||
return 'ERROR: No matches for text';
|
||||
}
|
||||
} else {
|
||||
found = findElementsBasedOnText({ text: field, selector: 'input, textarea' })[0];
|
||||
found = findElementsBasedOnText({ text: field, selector: 'input, textarea, [contenteditable="true"]' })[0];
|
||||
|
||||
if (!found) {
|
||||
return 'ERROR: No matches for text';
|
||||
|
|
|
@ -683,7 +683,7 @@ class behat_app extends behat_base {
|
|||
* @Given /^the app should( not)? have opened a browser tab$/
|
||||
* @param bool $not
|
||||
*/
|
||||
public function the_app_should_have_opened_a_browser_tab(bool $not) {
|
||||
public function the_app_should_have_opened_a_browser_tab(bool $not = false) {
|
||||
$this->spin(function() use ($not) {
|
||||
$openedbrowsertab = count($this->getSession()->getWindowNames()) === 2;
|
||||
|
||||
|
@ -716,6 +716,66 @@ class behat_app extends behat_base {
|
|||
$this->getSession()->switchToWindow($names[1]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Force cron tasks instead of waiting for the next scheduled execution.
|
||||
*
|
||||
* @When /^I run cron tasks in the app$/
|
||||
*/
|
||||
public function i_run_cron_tasks_in_the_app() {
|
||||
$session = $this->getSession();
|
||||
|
||||
// Force cron tasks execution and wait until they are completed.
|
||||
$operationid = random_string();
|
||||
|
||||
$session->executeScript(
|
||||
"cronProvider.forceSyncExecution().then(() => { window['behat_{$operationid}_completed'] = true; });"
|
||||
);
|
||||
$this->spin(
|
||||
function() use ($session, $operationid) {
|
||||
return $session->evaluateScript("window['behat_{$operationid}_completed'] || false");
|
||||
},
|
||||
false,
|
||||
60,
|
||||
new ExpectationException('Forced cron tasks in the app took too long to complete', $session)
|
||||
);
|
||||
|
||||
// Trigger Angular change detection multiple times in case some changes have
|
||||
// side-effects that result in further pending operations.
|
||||
for ($ticks = 5; $ticks > 0; $ticks--) {
|
||||
$session->executeScript($this->islegacy ? 'appRef.tick();' : 'changeDetector.detectChanges();');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wait until loading has finished.
|
||||
*
|
||||
* @When /^I wait loading to finish in the app$/
|
||||
*/
|
||||
public function i_wait_loading_to_finish_in_the_app() {
|
||||
$session = $this->getSession();
|
||||
|
||||
$this->spin(
|
||||
function() use ($session) {
|
||||
$session->executeScript($this->islegacy ? 'appRef.tick();' : 'changeDetector.detectChanges();');
|
||||
|
||||
$nodes = $this->find_all('css', 'core-loading ion-spinner');
|
||||
|
||||
foreach ($nodes as $node) {
|
||||
if (!$node->isVisible()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
false,
|
||||
60,
|
||||
new ExpectationException('"Loading took too long to complete', $session)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the current browser tab.
|
||||
*
|
||||
|
@ -780,4 +840,17 @@ class behat_app extends behat_base {
|
|||
return !empty($not);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces $WWWROOT for the url of the Moodle site.
|
||||
*
|
||||
* @Transform /^(.*\$WWWROOT.*)$/
|
||||
* @param string $text Text.
|
||||
* @return string
|
||||
*/
|
||||
public function replace_wwwroot($text) {
|
||||
global $CFG;
|
||||
|
||||
return str_replace('$WWWROOT', $CFG->behat_wwwroot, $text);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,113 +0,0 @@
|
|||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Behat step definitions.
|
||||
*
|
||||
* @package local_apps
|
||||
* @copyright 2010 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
use Behat\Mink\Exception\ExpectationException;
|
||||
|
||||
// NOTE: no MOODLE_INTERNAL test here, this file may be required by behat before including /config.php.
|
||||
|
||||
require_once(__DIR__ . '/../../../../lib/behat/behat_base.php');
|
||||
|
||||
/**
|
||||
* Behat step definitions.
|
||||
*
|
||||
* @package local_apps
|
||||
* @copyright 2010 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
class behat_local_moodlemobileapp extends behat_base {
|
||||
|
||||
/**
|
||||
* Force cron tasks instead of waiting for the next scheduled execution.
|
||||
*
|
||||
* @When /^I run cron tasks in the app$/
|
||||
*/
|
||||
public function i_run_cron_tasks_in_the_app() {
|
||||
$session = $this->getSession();
|
||||
|
||||
// Force cron tasks execution and wait until they are completed.
|
||||
$operationid = random_string();
|
||||
|
||||
$session->executeScript(
|
||||
"cronProvider.forceSyncExecution().then(() => { window['behat_{$operationid}_completed'] = true; });"
|
||||
);
|
||||
$this->spin(
|
||||
function() use ($session, $operationid) {
|
||||
return $session->evaluateScript("window['behat_{$operationid}_completed'] || false");
|
||||
},
|
||||
false,
|
||||
60,
|
||||
new ExpectationException('Forced cron tasks in the app took too long to complete', $session)
|
||||
);
|
||||
|
||||
// Trigger Angular digest cycle multiple times in case some changes have
|
||||
// side-effects that result in further pending operations.
|
||||
for ($ticks = 5; $ticks > 0; $ticks--) {
|
||||
$session->executeScript('appRef.tick();');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Wait until loading has finished.
|
||||
*
|
||||
* @When /^I wait loading to finish in the app$/
|
||||
*/
|
||||
public function i_wait_loading_to_finish_in_the_app() {
|
||||
$session = $this->getSession();
|
||||
|
||||
$this->spin(
|
||||
function() use ($session) {
|
||||
$session->executeScript('appRef.tick();');
|
||||
|
||||
$nodes = $this->find_all('css', 'core-loading ion-spinner');
|
||||
|
||||
foreach ($nodes as $node) {
|
||||
if (!$node->isVisible()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
},
|
||||
false,
|
||||
60,
|
||||
new ExpectationException('"Loading took too long to complete', $session)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces $WWWROOT for the url of the Moodle site.
|
||||
*
|
||||
* @Transform /^(.*\$WWWROOT.*)$/
|
||||
* @param string $text Text.
|
||||
* @return string
|
||||
*/
|
||||
public function arg_replace_wwwroot($text) {
|
||||
global $CFG;
|
||||
|
||||
return str_replace('$WWWROOT', $CFG->behat_wwwroot, $text);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue