Security update for permissions_by_term
[yaffs-website] / web / modules / contrib / permissions_by_term / tests / src / Behat / Features / access.feature
diff --git a/web/modules/contrib/permissions_by_term/tests/src/Behat/Features/access.feature b/web/modules/contrib/permissions_by_term/tests/src/Behat/Features/access.feature
new file mode 100644 (file)
index 0000000..7949e14
--- /dev/null
@@ -0,0 +1,155 @@
+@api @drupal
+Feature: Access
+  Several automated tests for the Permissions by Term Drupal 8 module.
+
+  Background:
+    Given restricted "tags" terms:
+      | name          | access_user   | access_role                             |
+      | Tag one       |               | administrator                           |
+      | Tag two       |               | authenticated                           |
+      | Tag three     |               |                                         |
+      | Tag admin     | admin         |                                         |
+      | Tag anonymous |               | anonymous, administrator, authenticated |
+    Given article content:
+      | title                          | author     | status | created           | field_tags    | alias                 |
+      | Only admin can access          | Admin      | 1      | 2014-10-17 8:00am | Tag one       | only-admin-can-access |
+      | Everybody can access           | Admin      | 1      | 2014-10-17 8:00am |               | no-term               |
+      | Term accessible                | Admin      | 1      | 2014-10-17 8:00am | Tag three     | term-no-restriction   |
+      | Unpublished node               | Admin      | 0      | 2014-10-17 8:00am |               | unpublished           |
+      | Only admin user can edit       | Admin      | 0      | 2014-10-17 8:00am | Tag admin     | unpublished           |
+      | Authenticated user can access  | Admin      | 0      | 2014-10-17 8:00am | Tag two       | unpublished           |
+      | Anonymous user can access      | Admin      | 1      | 2014-10-17 8:00am | Tag anonymous | anonymous             |
+    Given users:
+      | name          | mail            | pass     |
+      | Joe           | joe@example.com | password |
+    Given Node access records are rebuild.
+
+  Scenario: Anonymous users cannot see restricted node
+    Given I open node view by node title "Authenticated user can access"
+    Then I should see text matching "Access denied"
+
+  Scenario: Anonymous users can see allowed node with term with multiple user role relation in view
+    Given I am on "/"
+    And the cache has been cleared
+    Then I should see text matching "Anonymous user can access"
+
+#@TODO: Test needs to be fixed. Implement a method, which waits for HTML tags.
+#  Scenario: Anonymous users can see node, which is not connected to any permission.
+#    Given I am logged in as a user with the "administrator" role
+#    Then I am on "/admin/config/search/pages"
+#    And I press "edit-wipe"
+#    And I run cron
+#    And I am on "/user/logout"
+#    Then I am on "node/search"
+#    And I fill in "edit-keys" with "Everybody can"
+#    And I press "edit-submit--2"
+#    Then I should not see text matching "Your search yielded no results."
+
+  Scenario: Anonymous users do not see unpublished nodes.
+    Given I am on "node/search"
+    And I fill in "edit-keys" with "Unpublished node"
+    And I press "edit-submit--2"
+    Then I should see text matching "Your search yielded no results."
+
+#  Scenario: Anonymous users see nodes with term and no restriction
+#    Given I run cron
+#    Given I am on "/"
+#    Given I am on "node/search"
+#    And I fill in "edit-keys" with "Term accessible"
+#    And I press "edit-submit--2"
+#    Then I should not see text matching "Your search yielded no results."
+
+#@TODO: Test needs to be fixed. Implement a method, which waits for HTML tags.
+#  Scenario: Users cannot access restricted terms in taxonomy term field widgets.
+#    Given I am on "/"
+#    Then I am logged in as a user with the "administrator" role
+#    And I am on "/admin/structure/types/manage/article/form-display"
+#    And I select index 3 in dropdown named "fields[field_tags][type]"
+#    And I scroll to element with id "edit-submit"
+#    And I press "edit-submit"
+#    Then I am on "/node/add/article"
+#    Then I should not see "Tag admin" in the "#edit-field-tags" element
+#    Then I should see "Tag three" in the "#edit-field-tags" element
+
+  Scenario: Users cannot access node edit forms without having access to related terms.
+    Given I am on "/"
+    Then I am logged in as a user with the "administrator" role
+    And I am on "/admin/people/roles/add"
+    And I fill in "edit-label" with "Editor"
+    And I fill in "edit-id" with "editor"
+    Then I press "edit-submit"
+    Then I am on "/admin/people/permissions"
+    And I check checkbox with id "edit-editor-access-content-overview" by JavaScript
+    And I check checkbox with id "edit-editor-administer-nodes" by JavaScript
+    And I check checkbox with id "edit-editor-administer-content-types" by JavaScript
+    And I check checkbox with id "edit-editor-create-article-content" by JavaScript
+    And I check checkbox with id "edit-editor-delete-any-article-content" by JavaScript
+    And I check checkbox with id "edit-editor-delete-own-article-content" by JavaScript
+    And I check checkbox with id "edit-editor-edit-any-article-content" by JavaScript
+    And I check checkbox with id "edit-editor-edit-own-article-content" by JavaScript
+    And I scroll to element with id "edit-submit"
+    And I press "edit-submit"
+    Then I am on "/admin/people/create"
+    And I fill in "edit-name" with "editor"
+    And I fill in "edit-pass-pass1" with "password"
+    And I fill in "edit-pass-pass2" with "password"
+    And I check checkbox with id "edit-roles-editor" by JavaScript
+    And I scroll to element with id "edit-submit"
+    And I press "edit-submit"
+    Then I am on "/user/logout"
+    Then I am on "/user/login"
+    And I fill in "edit-name" with "editor"
+    And I fill in "edit-pass" with "password"
+    And I scroll to element with id "edit-submit"
+    And I press "edit-submit"
+    Then I am on "/admin/content"
+    And I should not see text matching "Only admin user can edit"
+    And I should see text matching "Term accessible"
+    And I should see text matching "Everybody can access"
+    Then I open node edit form by node title "Only admin user can edit"
+    And I should see text matching "Access denied"
+
+#@TODO: Test needs to be fixed. Implement a method, which waits for HTML tags.
+#  Scenario: Users are accessing an node directly
+#    Given I am logged in as a user with the "administrator" role
+#    Then I am on "only-admin-can-access"
+#    Then I should see text matching "Only admin can access"
+#    Given I am logged in as "Joe"
+#    Then I am on "only-admin-can-access"
+#    Then I should see text matching "Access denied"
+
+#@TODO: Test needs to be fixed. Implement a method, which waits for HTML tags.
+#  Scenario: Users search for an node
+#    Given I create 1000 nodes of type "article"
+#    Given I am logged in as a user with the "administrator" role
+#    And I am on "admin/config/system/cron"
+#    And I press "edit-run"
+#    Then I am on "node/search"
+#    And I fill in "edit-keys" with "Only admin can access"
+#    And I press "edit-submit"
+#    Then I should see text matching "Only admin can access"
+#    Given I am logged in as "Joe"
+#    Then I am on "node/search"
+#    And I fill in "edit-keys" with "Only admin can access"
+#    And I press "edit-submit"
+#    Then I should see text matching "Your search yielded no results."
+
+  Scenario: Users access an node by menu
+    Given I am logged in as a user with the "administrator" role
+    And I am on "admin/structure/menu/manage/main"
+    And I click "Add link"
+    And I fill in "edit-title-0-value" with "Only admin can access"
+    And I fill in "edit-link-0-uri" with "Only admin can access (1)"
+    And I press "edit-submit"
+    Then I click "Home"
+    Then I should see "Only admin can access" in the ".region-primary-menu" element
+    Given I am logged in as "Joe"
+    Then I should not see "Only admin can access" in the ".region-primary-menu" element
+
+  Scenario: Users access an nodes by view
+    Given I am logged in as a user with the "administrator" role
+    Then I am on "/"
+    And I should see text matching "Only admin can access"
+    Given I am logged in as "Joe"
+    Then I am on "/"
+    And I should not see text matching "Only admin can access"