Adds truncate to FileStream.
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/39301
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11245 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/base/file_stream_unittest.cc b/net/base/file_stream_unittest.cc
index 318eb93..966b9ff 100644
--- a/net/base/file_stream_unittest.cc
+++ b/net/base/file_stream_unittest.cc
@@ -406,4 +406,31 @@
EXPECT_EQ(kTestDataSize * 2, file_size);
}
+// Tests truncating a file.
+TEST_F(FileStreamTest, Truncate) {
+ int flags = base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_WRITE;
+
+ net::FileStream write_stream;
+ ASSERT_EQ(net::OK, write_stream.Open(temp_file_path(), flags));
+
+ // Write some data to the file.
+ const char test_data[] = "0123456789";
+ write_stream.Write(test_data, arraysize(test_data), NULL);
+
+ // Truncate the file.
+ ASSERT_EQ(4, write_stream.Truncate(4));
+
+ // Write again.
+ write_stream.Write(test_data, 4, NULL);
+
+ // Close the stream.
+ write_stream.Close();
+
+ // Read in the contents and make sure we get back what we expected.
+ std::string read_contents;
+ file_util::ReadFileToString(temp_file_path(), &read_contents);
+
+ ASSERT_TRUE(read_contents == "01230123");
+}
+
// TODO(erikkay): more READ_WRITE tests?