def test_successful_logout(self):
        # Login
        handler = self.request({
            'username': '******',
            'password': '******'
        })
        yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in self.responses[0])
        self.assertEqual(len(GLSessions.keys()), 1)

        # Logout
        session_id = self.responses[0]['session_id']
        handler = self.request({}, headers={'X-Session': session_id})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)

        # A second logout must not be accepted (this validate also X-Session reuse)
        handler = self.request({}, headers={'X-Session': session_id})

        self.assertRaises(errors.NotAuthenticated, handler.delete)

        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)
    def test_successful_logout(self):
        # Login
        handler = self.request({
            'username': '******',
            'password': helpers.VALID_PASSWORD1
        })
        yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in self.responses[0])
        self.assertEqual(len(GLSessions.keys()), 1)

        # Logout
        session_id = self.responses[0]['session_id']
        handler = self.request({}, headers={'X-Session': session_id})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)

        # A second logout must not be accepted (this validate also X-Session reuse)
        handler = self.request({}, headers={'X-Session': session_id})

        self.assertRaises(errors.NotAuthenticated, handler.delete)

        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)
 def test_successful_whistleblower_login(self):
     yield self.perform_full_submission_actions()
     handler = self.request({'receipt': self.dummySubmission['receipt']})
     handler.client_using_tor = True
     response = yield handler.post()
     self.assertTrue('session_id' in response)
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_successful_login(self):
     handler = self.request({
         'username': '******',
         'password': helpers.VALID_PASSWORD1
     })
     response = yield handler.post()
     self.assertTrue('session_id' in response)
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_accept_whistleblower_login_in_tor2web(self):
     yield self.perform_full_submission_actions()
     handler = self.request({'receipt': self.dummySubmission['receipt']},
                            headers={'X-Tor2Web': 'whatever'})
     GLSettings.memory_copy.accept_tor2web_access['whistleblower'] = True
     response = yield handler.post()
     self.assertTrue('session_id' in response)
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_successful_login(self):
     handler = self.request({
         'username': '******',
         'password': '******',
     })
     success = yield handler.post()
     self.assertTrue('session_id' in self.responses[0])
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_successful_whistleblower_login(self):
     yield self.perform_full_submission_actions()
     handler = self.request({
         'receipt': self.dummySubmission['receipt']
     })
     yield handler.post()
     self.assertTrue('session_id' in self.responses[0])
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_accept_login_in_tor2web(self):
     handler = self.request({
         'username': '******',
         'password': helpers.VALID_PASSWORD1
     })
     GLSettings.memory_copy.accept_tor2web_access['admin'] = True
     response = yield handler.post()
     self.assertTrue('session_id' in response)
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_accept_login_in_tor2web(self):
     handler = self.request({
         'username': '******',
         'password': '******'
     }, headers={'X-Tor2Web': 'whatever'})
     GLSettings.memory_copy.accept_tor2web_access['admin'] = True
     success = yield handler.post()
     self.assertTrue('session_id' in self.responses[0])
     self.assertEqual(len(GLSessions.keys()), 1)
 def test_accept_whistleblower_login_in_tor2web(self):
     yield self.perform_full_submission_actions()
     handler = self.request({
         'receipt': self.dummySubmission['receipt']
     }, headers={'X-Tor2Web': 'whatever'})
     GLSettings.memory_copy.accept_tor2web_access['whistleblower'] = True
     success = yield handler.post()
     self.assertTrue('session_id' in self.responses[0])
     self.assertEqual(len(GLSessions.keys()), 1)
    def test_successful_admin_logout(self):
        self._handler = authentication.AuthenticationHandler

        # Login
        handler = self.request({
            'username': '******',
            'password': helpers.VALID_PASSWORD1
        })
        response = yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in response)
        self.assertEqual(len(GLSessions.keys()), 1)

        self._handler = authentication.SessionHandler

        # Logout
        session_id = response['session_id']
        handler = self.request({}, headers={'x-session': session_id})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)
    def test_successful_whistleblower_logout(self):
        yield self.perform_full_submission_actions()

        self._handler = authentication.ReceiptAuthHandler

        handler = self.request({'receipt': self.dummySubmission['receipt']})

        handler.client_using_tor = True

        response = yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in response)
        self.assertEqual(len(GLSessions.keys()), 1)

        self._handler = authentication.SessionHandler

        # Logout
        handler = self.request({},
                               headers={'x-session': response['session_id']})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)
    def test_successful_whistleblower_logout(self):
        yield self.perform_full_submission_actions()
        handler = self.request({
            'receipt': self.dummySubmission['receipt']
        })
        yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in self.responses[0])
        self.assertEqual(len(GLSessions.keys()), 1)

        # Logout
        session_id = self.responses[0]['session_id']
        handler = self.request({}, headers={'X-Session': session_id})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)

        # A second logout must not be accepted (this validate also X-Session reuse)
        handler = self.request({}, headers={'X-Session': session_id})

        self.assertRaises(errors.NotAuthenticated, handler.delete)

        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)
    def test_successful_whistleblower_logout(self):
        yield self.perform_full_submission_actions()
        handler = self.request({
            'receipt': self.dummySubmission['receipt']
        })
        yield handler.post()
        self.assertTrue(handler.current_user is None)
        self.assertTrue('session_id' in self.responses[0])
        self.assertEqual(len(GLSessions.keys()), 1)

        # Logout
        session_id = self.responses[0]['session_id']
        handler = self.request({}, headers={'X-Session': session_id})
        yield handler.delete()
        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)

        # A second logout must not be accepted (this validate also X-Session reuse)
        handler = self.request({}, headers={'X-Session': session_id})

        self.assertRaises(errors.NotAuthenticated, handler.delete)

        self.assertTrue(handler.current_user is None)
        self.assertEqual(len(GLSessions.keys()), 0)