1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/test/chromedriver/chrome/browser_info.h" 6 7#include "testing/gtest/include/gtest/gtest.h" 8 9namespace { 10 11void AssertParseBrowserInfoFails(const std::string& data) { 12 BrowserInfo browser_info; 13 Status status = ParseBrowserInfo(data, &browser_info); 14 ASSERT_TRUE(status.IsError()); 15} 16 17} // namespace 18 19TEST(ParseBrowserInfo, InvalidJSON) { 20 AssertParseBrowserInfoFails("["); 21} 22 23TEST(ParseBrowserInfo, NonDict) { 24 AssertParseBrowserInfoFails("[]"); 25} 26 27TEST(ParseBrowserInfo, NoBrowserKey) { 28 AssertParseBrowserInfoFails("{}"); 29} 30 31TEST(ParseBrowserInfo, BlinkVersionContainsSvnRevision) { 32 std::string data("{\"Browser\": \"Chrome/37.0.2062.124\"," 33 " \"WebKit-Version\": \"537.36 (@181352)\"}"); 34 BrowserInfo browser_info; 35 Status status = ParseBrowserInfo(data, &browser_info); 36 ASSERT_TRUE(status.IsOk()); 37 ASSERT_EQ("chrome", browser_info.browser_name); 38 ASSERT_EQ("37.0.2062.124", browser_info.browser_version); 39 ASSERT_EQ(2062, browser_info.build_no); 40 ASSERT_EQ(181352, browser_info.blink_revision); 41} 42 43TEST(ParseBrowserInfo, BlinkVersionContainsGitHash) { 44 std::string data("{\"Browser\": \"Chrome/37.0.2062.124\"," 45 " \"WebKit-Version\":" 46 " \"537.36 (@28f741cfcabffe68a9c12c4e7152569c906bd88f)\"}"); 47 BrowserInfo browser_info; 48 const int default_blink_revision = browser_info.blink_revision; 49 Status status = ParseBrowserInfo(data, &browser_info); 50 ASSERT_TRUE(status.IsOk()); 51 ASSERT_EQ("chrome", browser_info.browser_name); 52 ASSERT_EQ("37.0.2062.124", browser_info.browser_version); 53 ASSERT_EQ(2062, browser_info.build_no); 54 ASSERT_EQ(default_blink_revision, browser_info.blink_revision); 55} 56 57TEST(ParseBrowserString, Chrome) { 58 std::string browser_name; 59 std::string browser_version; 60 int build_no; 61 Status status = ParseBrowserString( 62 "Chrome/37.0.2062.124", &browser_name, &browser_version, &build_no); 63 ASSERT_TRUE(status.IsOk()); 64 ASSERT_EQ("chrome", browser_name); 65 ASSERT_EQ("37.0.2062.124", browser_version); 66 ASSERT_EQ(2062, build_no); 67} 68 69TEST(ParseBlinkVersionString, GitHash) { 70 int rev = -1; 71 Status status = ParseBlinkVersionString( 72 "537.36 (@28f741cfcabffe68a9c12c4e7152569c906bd88f)", &rev); 73 ASSERT_TRUE(status.IsOk()); 74 ASSERT_EQ(-1, rev); 75} 76 77TEST(ParseBlinkVersionString, SvnRevision) { 78 int blink_revision = -1; 79 Status status = ParseBlinkVersionString("537.36 (@159105)", &blink_revision); 80 ASSERT_TRUE(status.IsOk()); 81 ASSERT_EQ(159105, blink_revision); 82} 83 84TEST(IsGitHash, GitHash) { 85 ASSERT_TRUE(IsGitHash("28f741cfcabffe68a9c12c4e7152569c906bd88f")); 86} 87 88TEST(IsGitHash, ShortGitHash) { 89 ASSERT_TRUE(IsGitHash("1493aa5")); 90} 91 92TEST(IsGitHash, GitHashWithUpperCaseCharacters) { 93 ASSERT_TRUE(IsGitHash("28F741CFCABFFE68A9C12C4E7152569C906BD88F")); 94} 95 96TEST(IsGitHash, SvnRevision) { 97 ASSERT_FALSE(IsGitHash("159105")); 98} 99