Create a Sessions controller that will be used to sign a user in/out and persist their session. Write
integration tests for the session controller's actions in situations where the user provides valid
information to sign in successfully and for when a user attempts to log in using invalid credentials.
Create views corresponding to the session controller's actions, including the signup and signout pages,
including tests that attempt to fill in the signin form with both valid and invalid credentials - At this
point the application is consistent with the state at the end of section 8.2.1, about to begin section 8.2.2.
Update the layout's header partial to include a dropdown menu with some links to additional options relevant
to valid users after they have logged in, but make these links disappear when the user is not logged in. Write
tests for this feature as well. Add some helpers to the session helper, including helpers that sign a user in, out,
or check whether the user is logged in, and ones that allow us to refer to the current user as 'current_user'. Add
functionality that destroys the user's session and erases the cookie from their browser when they log out of the
application, and write corresponding tests for this feature - App is currently at the end of section 8.2, about
to begin section 8.3, which is an introduction to Cucumber.
Finish sign in (end of chapter 8 but before doing the exercises)