// Copyright (c) 2011 The Chromium 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 "base/build_time.h"
#include "base/generated_build_date.h"
#include "base/time/time.h"

#include "starboard/common/string.h"
#include "testing/gtest/include/gtest/gtest.h"

TEST(BuildTime, DateLooksValid) {
  char build_date[] = BUILD_DATE;

  EXPECT_EQ(20u, strlen(build_date));
  EXPECT_EQ(' ', build_date[3]);
  EXPECT_EQ(' ', build_date[6]);
  EXPECT_EQ(' ', build_date[11]);
  EXPECT_EQ('0', build_date[12]);
  EXPECT_EQ('5', build_date[13]);
  EXPECT_EQ(':', build_date[14]);
  EXPECT_EQ('0', build_date[15]);
  EXPECT_EQ('0', build_date[16]);
  EXPECT_EQ(':', build_date[17]);
  EXPECT_EQ('0', build_date[18]);
  EXPECT_EQ('0', build_date[19]);
}

// Starboard does not support build time.
#ifndef STARBOARD
TEST(BuildTime, InThePast) {
  EXPECT_LT(base::GetBuildTime(), base::Time::Now());
  EXPECT_LT(base::GetBuildTime(), base::Time::NowFromSystemTime());
}
#endif
