| 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..f7c21de5abbddc74730baba4a0efa0c0fea6f469 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);
|
| 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,40 @@ TEST_F(MountHttpNodeTest, OpenAndCloseNoCache) {
|
| OpenNode();
|
| }
|
|
|
| +TEST_F(MountHttpNodeTest, OpenAndCloseNotFound) {
|
| + StringMap_t smap;
|
| + smap["cache_content"] = "false";
|
| + SetMountArgs(StringMap_t());
|
| + ExpectOpen("HEAD");
|
| + ExpectHeaders("");
|
| + SetResponseExpectFail(404, "");
|
| + ASSERT_EQ(ENOENT, mnt_->Open(Path(path_), O_RDONLY, &node_));
|
| +}
|
| +
|
| +TEST_F(MountHttpNodeTest, OpenAndCloseServerError) {
|
| + StringMap_t smap;
|
| + smap["cache_content"] = "false";
|
| + SetMountArgs(StringMap_t());
|
| + ExpectOpen("HEAD");
|
| + ExpectHeaders("");
|
| + SetResponseExpectFail(500, "");
|
| + ASSERT_EQ(EIO, mnt_->Open(Path(path_), O_RDONLY, &node_));
|
| +}
|
| +
|
| +TEST_F(MountHttpNodeTest, GetStat) {
|
| + StringMap_t smap;
|
| + smap["cache_content"] = "false";
|
| + SetMountArgs(StringMap_t());
|
| + ExpectOpen("HEAD");
|
| + ExpectHeaders("");
|
| + SetResponse(200, "Content-Length: 42\n");
|
| + OpenNode();
|
| +
|
| + struct stat stat;
|
| + EXPECT_EQ(0, node_->GetStat(&stat));
|
| + EXPECT_EQ(42, stat.st_size);
|
| +}
|
| +
|
| TEST_F(MountHttpNodeTest, ReadCached) {
|
| size_t result_size = 0;
|
| int result_bytes = 0;
|
|
|