user.feature 2.8 KB
Newer Older
1 2
Feature: User
  Background:
3
    Given User "John Doe" exists
4
    And "John Doe" owns private project "Enterprise"
5 6 7

  # Signed out

8 9 10
  Scenario: I visit user "John Doe" page while not signed in when he owns a public project
    Given "John Doe" owns internal project "Internal"
    And "John Doe" owns public project "Community"
11 12 13 14 15 16 17
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should not see project "Enterprise"
    And I should not see project "Internal"
    And I should see project "Community"

  Scenario: I visit user "John Doe" page while not signed in when he is not authorized to a public project
18
    Given "John Doe" owns internal project "Internal"
19 20 21 22 23
    When I visit user "John Doe" page
    Then I should be redirected to sign in page

  # Signed in as someone else

24 25 26
  Scenario: I visit user "John Doe" page while signed in as someone else when he owns a public project
    Given "John Doe" owns public project "Community"
    And "John Doe" owns internal project "Internal"
27 28 29 30 31 32 33 34
    And I sign in as a user
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should not see project "Enterprise"
    And I should see project "Internal"
    And I should see project "Community"

  Scenario: I visit user "John Doe" page while signed in as someone else when he is not authorized to a public project
35
    Given "John Doe" owns internal project "Internal"
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
    And I sign in as a user
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should not see project "Enterprise"
    And I should see project "Internal"
    And I should not see project "Community"

  Scenario: I visit user "John Doe" page while signed in as someone else when he is not authorized to a project I can see
    Given I sign in as a user
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should not see project "Enterprise"
    And I should not see project "Internal"
    And I should not see project "Community"

  # Signed in as the user himself

  Scenario: I visit user "John Doe" page while signed in as "John Doe" when he has a public project
54 55
    Given "John Doe" owns internal project "Internal"
    And "John Doe" owns public project "Community"
56 57 58 59 60 61 62 63 64 65 66 67 68 69
    And I sign in as "John Doe"
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should see project "Enterprise"
    And I should see project "Internal"
    And I should see project "Community"

  Scenario: I visit user "John Doe" page while signed in as "John Doe" when he has no public project
    Given I sign in as "John Doe"
    When I visit user "John Doe" page
    Then I should see user "John Doe" page
    And I should see project "Enterprise"
    And I should not see project "Internal"
    And I should not see project "Community"