diff --git a/djangoldp/tests/runner.py b/djangoldp/tests/runner.py
index 4e3bcd0417a8ea9e8588f2ec0ae9539615278bb8..af9839c806639a0bacef0303770c3347797817f0 100644
--- a/djangoldp/tests/runner.py
+++ b/djangoldp/tests/runner.py
@@ -27,6 +27,7 @@ test_runner = DiscoverRunner(verbosity=1)
 failures = test_runner.run_tests([
     'djangoldp.tests.tests_ldp_model',
     'djangoldp.tests.tests_save',
+    'djangoldp.tests.tests',
     'djangoldp.tests.tests_update'])
 if failures:
     sys.exit(failures)
diff --git a/djangoldp/tests/tests.py b/djangoldp/tests/tests.py
new file mode 100644
index 0000000000000000000000000000000000000000..53644644214c6047dcb98a6aa2ee70e596d12eeb
--- /dev/null
+++ b/djangoldp/tests/tests.py
@@ -0,0 +1,75 @@
+from django.test import TestCase, Client, RequestFactory
+from djangoldp.views import LDPViewSet
+from djangoldp.permissions import AnonymousReadOnly
+
+from django.contrib.auth.models import AnonymousUser, User
+from djangoldp_joboffer.models import JobOffer
+
+
+class TestUserPermissions (TestCase):
+    def setUp(self):
+        self.factory = RequestFactory()
+#        self.c = Client()
+        self.user = User.objects.create_user(username='john', email='jlennon@beatles.com', password='glass onion')
+
+    def tearDown(self):
+        self.user.delete()
+
+    def test_get_with_user(self):
+        request = self.factory.get('/job-offers/')
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'get': 'list'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 200)
+
+    def test_request_options_create_with_user(self):
+        request = self.factory.options('/job-offers/')
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'options': 'create'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 201)
+
+    def test_request_options_update_with_user(self):
+        request = self.factory.options('/job-offers/')
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'options': 'update'}, model=JobOffer, nested_fields=["skills"], permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 201)
+
+class TestAnonymousUserPermissions (TestCase):
+    def setUp(self):
+        self.factory = RequestFactory()
+#        self.c = Client()
+        self.user = AnonymousUser
+
+    def test_get_request_with_anonymousUser(self):
+        request = self.factory.get("/job-offers/")
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'get': 'list'},
+                                     model=JobOffer,
+                                     nested_fields=["skills"],
+                                     permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 200)
+
+    def test_request_options_create_with_anonymousUser(self):
+        request = self.factory.options("/job-offers/")
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'options': 'create'},
+                                     model=JobOffer,
+                                     nested_fields=["skills"],
+                                     permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 403)
+
+    def test_request_options_update_with_anonymousUser(self):
+        request = self.factory.options("/job-offers/")
+        request.user = self.user
+        my_view = LDPViewSet.as_view({'options': 'update'},
+                                     model=JobOffer,
+                                     nested_fields=["skills"],
+                                     permission_classes=[AnonymousReadOnly])
+        response = my_view(request)
+        self.assertEqual(response.status_code, 403)
+
+