blob: 0e27df8b83593dd1df3c5f32f16f77946b7dfd88 [file] [log] [blame]
// Copyright 2017 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "manifest.h"
#include <stdlib.h>
#include <base/files/file_util.h>
#include <base/json/json_reader.h>
#include <base/macros.h>
#include <base/values.h>
#include <gtest/gtest.h>
namespace {
const char kManifestJsonFile[] = "./src/huddly_go/example/manifest.json";
class ManifestTest : public ::testing::Test {
protected:
void SetUp() override {
const base::FilePath path(FILE_PATH_LITERAL(kManifestJsonFile));
manifest.set_path(path);
}
huddly::Manifest manifest;
};
TEST_F(ManifestTest, FileExists) {
EXPECT_TRUE(base::PathExists(manifest.path()));
}
TEST_F(ManifestTest, ReadJSONDictionary) {
// See also: chromium/src/base/+/master/json/json_reader_unittest.cc
std::string content;
ASSERT_TRUE(ReadFileToString(manifest.path(), &content));
auto root = base::JSONReader::ReadAndReturnValueWithError(
content, base::JSON_PARSE_RFC);
ASSERT_TRUE(root.value) << root.error_message;
EXPECT_TRUE(root.value->is_dict());
}
TEST_F(ManifestTest, TestParseFile) {
EXPECT_TRUE(manifest.ParseFile());
// manifest get methods return empty strings when corresponding fields
// do not exist.
EXPECT_EQ(manifest.path().value(), FILE_PATH_LITERAL(kManifestJsonFile));
EXPECT_EQ(manifest.app_ver(), "0.5.1");
EXPECT_EQ(manifest.boot_ver(), "0.2.1");
EXPECT_EQ(manifest.hw_rev(), "6");
}
} // namespace