Chromium Code Reviews| Index: native_client_sdk/src/libraries/nacl_io_test/mount_http_test.cc |
| diff --git a/native_client_sdk/src/libraries/nacl_io_test/mount_http_test.cc b/native_client_sdk/src/libraries/nacl_io_test/mount_http_test.cc |
| index 1bc75068f10a3da0d0863bf5f652e72a9ecfd438..a8d725380be252f01ae3beef48d491cf6ec4108f 100644 |
| --- a/native_client_sdk/src/libraries/nacl_io_test/mount_http_test.cc |
| +++ b/native_client_sdk/src/libraries/nacl_io_test/mount_http_test.cc |
| @@ -176,6 +176,9 @@ class MountHttpNodeTest : public MountHttpTest { |
| void ExpectHeaders(const char* headers); |
| void OpenNode(); |
| void SetResponse(int status_code, const char* headers); |
| + // Set a response code, but expect the request to fail. Certain function calls |
| + // expected by SetResponse are not expected here. |
| + void SetResponseExpectFail(int status_code, const char* headers); |
|
Matt Giuca
2013/06/19 10:41:42
Note: I borrowed this code from my other CL https:
binji
2013/06/19 16:46:28
In the future, you can use "git cl upload <branch
Matt Giuca
2013/06/20 01:43:14
Yeah I wasn't sure whether to do that in this case
|
| void SetResponseBody(const char* body); |
| void ResetMocks(); |
| @@ -283,6 +286,18 @@ void MountHttpNodeTest::SetResponse(int status_code, const char* headers) { |
| Return(headers))); |
| } |
| +void MountHttpNodeTest::SetResponseExpectFail(int status_code, |
| + const char* headers) { |
| + ON_CALL(*response_, GetProperty(response_resource_, _)) |
| + .WillByDefault(Return(PP_MakeUndefined())); |
| + |
| + PP_Var var_headers = MakeString(348); |
| + EXPECT_CALL(*response_, |
| + GetProperty(response_resource_, |
| + PP_URLRESPONSEPROPERTY_STATUSCODE)) |
| + .WillOnce(Return(PP_MakeInt32(status_code))); |
| +} |
| + |
| ACTION_P3(ReadResponseBodyAction, offset, body, body_length) { |
| char* buf = static_cast<char*>(arg1); |
| size_t read_length = arg2; |
| @@ -337,6 +352,37 @@ TEST_F(MountHttpNodeTest, OpenAndCloseNoCache) { |
| OpenNode(); |
| } |
| +TEST_F(MountHttpNodeTest, Access) { |
|
Matt Giuca
2013/06/19 10:41:42
Note: Access and AccessWrite suffer from the same
|
| + StringMap_t smap; |
| + smap["cache_content"] = "false"; |
| + SetMountArgs(StringMap_t()); |
| + ExpectOpen("HEAD"); |
| + ExpectHeaders(""); |
| + SetResponse(200, ""); |
| + ASSERT_EQ(0, mnt_->Access(Path(path_), R_OK)); |
| +} |
| + |
| +TEST_F(MountHttpNodeTest, AccessWrite) { |
| + StringMap_t smap; |
| + smap["cache_content"] = "false"; |
| + SetMountArgs(StringMap_t()); |
| + ExpectOpen("HEAD"); |
| + ExpectHeaders(""); |
| + SetResponse(200, ""); |
| + ASSERT_EQ(EACCES, mnt_->Access(Path(path_), W_OK)); |
| +} |
| + |
| +TEST_F(MountHttpNodeTest, AccessNotFound) { |
| + StringMap_t smap; |
| + smap["cache_content"] = "false"; |
| + SetMountArgs(StringMap_t()); |
| + ExpectOpen("HEAD"); |
| + ExpectHeaders(""); |
| + SetResponseExpectFail(404, ""); |
| + // TODO(mgiuca): Expect ENOENT instead. http://crbug.com/251662. |
| + ASSERT_EQ(EINVAL, mnt_->Access(Path(path_), R_OK)); |
| +} |
| + |
| TEST_F(MountHttpNodeTest, ReadCached) { |
| size_t result_size = 0; |
| int result_bytes = 0; |