# This file doesn't test any API in particular but is meant to functionally # test the API framework itself. from galaxy_test.base.decorators import requires_admin from ._framework import ApiTestCase class TestApiFramework(ApiTestCase): def test_default_xframe_options(self): get_response = self._get("licenses") assert get_response.headers["x-frame-options"] == "SAMEORIGIN" def test_xframe_options_skipped_for_embed(self): get_response = self._get("/published/page", data={"embed": "true"}) assert "x-frame-options" not in get_response.headers # Next several tests test the API's run_as functionality. def test_user_cannont_run_as(self): run_as_user = self._setup_user("for_run_as@bx.psu.edu") post_data = dict(name="TestHistory1") # Normal user cannot run_as... create_response = self._post( "histories", data=post_data, headers={"run-as": run_as_user["id"]}, ) self._assert_status_code_is(create_response, 403) @requires_admin def test_run_as_invalid_user(self): post_data = dict(name="TestHistory1") # admin user can run_as, but this user doesn't exist, expect 400. create_response = self._post( "histories", data=post_data, headers={"run-as": "another_user"}, admin=True, ) self._assert_status_code_is(create_response, 400) @requires_admin def test_run_as_valid_user(self): run_as_user = self._setup_user("for_run_as@bx.psu.edu") post_data = dict(name="TestHistory1") # Use run_as with admin user and for another user just created, this # should work. create_response = self._post( "histories", data=post_data, headers={"run-as": run_as_user["id"]}, admin=True, ) self._assert_status_code_is(create_response, 200)