Refactor Specs

Create shared examples and test them on the cases where we provide different options.

This facilitates testing new options on the plugin and also test them more thoroughly.