14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file.
44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "components/dom_distiller/core/article_entry.h"
64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "sync/protocol/sync.pb.h"
84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)#include "testing/gtest/include/gtest/gtest.h"
94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using sync_pb::EntitySpecifics;
114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using sync_pb::ArticlePage;
124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using sync_pb::ArticleSpecifics;
134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using testing::AssertionResult;
144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using testing::AssertionSuccess;
154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)using testing::AssertionFailure;
164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)namespace dom_distiller {
184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)TEST(DomDistillerArticleEntryTest, TestIsEntryValid) {
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntry entry;
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(IsEntryValid(entry));
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  entry.set_entry_id("entry0");
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_TRUE(IsEntryValid(entry));
244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntryPage* page0 = entry.add_pages();
254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(IsEntryValid(entry));
264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  page0->set_url("example.com/1");
274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_TRUE(IsEntryValid(entry));
284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)TEST(DomDistillerArticleEntryTest, TestAreEntriesEqual) {
314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntry left;
324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntry right;
334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  left.set_entry_id("entry0");
344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right.set_entry_id("entry1");
354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right = left;
374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_TRUE(AreEntriesEqual(left, right));
384e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
394e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  left.set_title("a title");
404e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
414e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right.set_title("a different title");
424e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
434e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right.set_title("a title");
444e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_TRUE(AreEntriesEqual(left, right));
454e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
464e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntryPage left_page;
474e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  left_page.set_url("example.com/1");
484e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  *left.add_pages() = left_page;
494e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
504e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
514e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
524e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  ArticleEntryPage right_page;
534e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right_page.set_url("foo.example.com/1");
544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  *right.add_pages() = right_page;
554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
564e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
574e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  right = left;
584e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_TRUE(AreEntriesEqual(left, right));
594e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
604e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  *right.add_pages() = right_page;
614e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)  EXPECT_FALSE(AreEntriesEqual(left, right));
624e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}
634e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
644e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)}  // namespace dom_distiller
65