root/chrome/utility/media_galleries/picasa_album_table_reader_unittest.cc

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. TEST

// Copyright 2013 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/files/scoped_temp_dir.h"
#include "chrome/common/media_galleries/picasa_test_util.h"
#include "chrome/common/media_galleries/pmp_constants.h"
#include "chrome/utility/media_galleries/picasa_album_table_reader.h"
#include "testing/gtest/include/gtest/gtest.h"

namespace picasa {

namespace {

TEST(PicasaAlbumTableReaderTest, FoldersAndAlbums) {
  base::ScopedTempDir temp_dir;
  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());

  int test_time_delta = 100;

  std::vector<uint32> category_vector;
  category_vector.push_back(kAlbumCategoryFolder);
  category_vector.push_back(kAlbumCategoryInvalid);
  category_vector.push_back(kAlbumCategoryAlbum);

  std::vector<double> date_vector;
  date_vector.push_back(0.0);
  date_vector.push_back(0.0);
  date_vector.push_back(0.0 + test_time_delta);

  std::string test_folder_name = "Pix4dalulz";
  std::string test_album_name = "Cats";

  base::FilePath test_folder_path =
      base::FilePath(base::FilePath::FromUTF8Unsafe("C:\\Pix4dalulz"));

  // Only folders require filenames. Tests handling of different length columns.
  std::vector<std::string> filename_vector;
  filename_vector.push_back(test_folder_path.AsUTF8Unsafe());

  std::vector<std::string> name_vector;
  name_vector.push_back(test_folder_name);
  name_vector.push_back("");
  name_vector.push_back(test_album_name);

  std::vector<std::string> token_vector;
  token_vector.push_back("");
  token_vector.push_back("");
  token_vector.push_back(std::string(kAlbumTokenPrefix) + "uid3");

  std::vector<std::string> uid_vector;
  uid_vector.push_back("uid1");
  uid_vector.push_back("uid2");
  uid_vector.push_back("uid3");

  WriteAlbumTable(temp_dir.path(), category_vector, date_vector,
                  filename_vector, name_vector, token_vector, uid_vector);

  AlbumTableFiles album_table_files(temp_dir.path());
  PicasaAlbumTableReader reader(album_table_files.Pass());

  ASSERT_TRUE(reader.Init());

  const std::vector<AlbumInfo>& albums = reader.albums();
  const std::vector<AlbumInfo>& folders = reader.folders();

  ASSERT_EQ(1u, albums.size());
  ASSERT_EQ(1u, folders.size());

  EXPECT_EQ(test_album_name, albums[0].name);
  EXPECT_EQ(test_folder_name, folders[0].name);

  EXPECT_EQ(test_folder_path, folders[0].path);

  base::TimeDelta time_delta = albums[0].timestamp - folders[0].timestamp;

  EXPECT_EQ(test_time_delta, time_delta.InDays());
}

}  // namespace

}  // namespace picasa

/* [<][>][^][v][top][bottom][index][help] */