1 /*
2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3  *
4  *  Use of this source code is governed by a BSD-style license
5  *  that can be found in the LICENSE file in the root of the source
6  *  tree. An additional intellectual property rights grant can be found
7  *  in the file PATENTS.  All contributing project authors may
8  *  be found in the AUTHORS file in the root of the source tree.
9  */
10 
11 #include "webrtc/test/testsupport/frame_writer.h"
12 
13 #include "testing/gtest/include/gtest/gtest.h"
14 #include "webrtc/test/testsupport/fileutils.h"
15 
16 namespace webrtc {
17 namespace test {
18 
19 const size_t kFrameLength = 1000;
20 
21 class FrameWriterTest: public testing::Test {
22  protected:
FrameWriterTest()23   FrameWriterTest() {}
~FrameWriterTest()24   virtual ~FrameWriterTest() {}
SetUp()25   void SetUp() {
26     temp_filename_ = webrtc::test::TempFilename(webrtc::test::OutputPath(),
27                                                 "frame_writer_unittest");
28     frame_writer_ = new FrameWriterImpl(temp_filename_, kFrameLength);
29     ASSERT_TRUE(frame_writer_->Init());
30   }
TearDown()31   void TearDown() {
32     delete frame_writer_;
33     // Cleanup the temporary file.
34     remove(temp_filename_.c_str());
35   }
36   FrameWriter* frame_writer_;
37   std::string temp_filename_;
38 };
39 
TEST_F(FrameWriterTest,InitSuccess)40 TEST_F(FrameWriterTest, InitSuccess) {
41   FrameWriterImpl frame_writer(temp_filename_, kFrameLength);
42   ASSERT_TRUE(frame_writer.Init());
43   ASSERT_EQ(kFrameLength, frame_writer.FrameLength());
44 }
45 
TEST_F(FrameWriterTest,WriteFrame)46 TEST_F(FrameWriterTest, WriteFrame) {
47   uint8_t buffer[kFrameLength];
48   memset(buffer, 9, kFrameLength);  // Write lots of 9s to the buffer
49   bool result = frame_writer_->WriteFrame(buffer);
50   ASSERT_TRUE(result);  // success
51   // Close the file and verify the size.
52   frame_writer_->Close();
53   ASSERT_EQ(kFrameLength, GetFileSize(temp_filename_));
54 }
55 
TEST_F(FrameWriterTest,WriteFrameUninitialized)56 TEST_F(FrameWriterTest, WriteFrameUninitialized) {
57   uint8_t buffer[3];
58   FrameWriterImpl frame_writer(temp_filename_, kFrameLength);
59   ASSERT_FALSE(frame_writer.WriteFrame(buffer));
60 }
61 
62 }  // namespace test
63 }  // namespace webrtc
64