summaryrefslogtreecommitdiff
path: root/src/components/application_manager/test/resumption/resumption_data_db_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/application_manager/test/resumption/resumption_data_db_test.cc')
-rw-r--r--src/components/application_manager/test/resumption/resumption_data_db_test.cc134
1 files changed, 87 insertions, 47 deletions
diff --git a/src/components/application_manager/test/resumption/resumption_data_db_test.cc b/src/components/application_manager/test/resumption/resumption_data_db_test.cc
index a6ced14349..2fc1e5e5ec 100644
--- a/src/components/application_manager/test/resumption/resumption_data_db_test.cc
+++ b/src/components/application_manager/test/resumption/resumption_data_db_test.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Ford Motor Company
+ * Copyright (c) 2016, Ford Motor Company
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -33,15 +33,15 @@
#include <string>
#include <algorithm>
#include "gtest/gtest.h"
-#include "include/application_mock.h"
+#include "application_manager/mock_application.h"
+#include "application_manager/mock_application_manager_settings.h"
#include "interfaces/MOBILE_API.h"
#include "sql_database.h"
#include "sql_query.h"
-
-#include "application_manager/application_manager_impl.h"
-#include "config_profile/profile.h"
+#include "utils/make_shared.h"
#include "utils/file_system.h"
-#include "include/resumption_data_test.h"
+#include "application_manager/resumption_data_test.h"
+#include "application_manager/test_resumption_data_db.h"
#include "application_manager/resumption/resumption_sql_queries.h"
#include "application_manager/resumption/resumption_data_db.h"
@@ -51,6 +51,8 @@ namespace components {
namespace resumption_test {
using ::testing::NiceMock;
+using ::testing::ReturnRef;
+using application_manager_test::MockApplication;
namespace am = application_manager;
using namespace file_system;
@@ -58,17 +60,14 @@ using namespace file_system;
using namespace resumption;
using namespace mobile_apis;
-class TestResumptionDataDB : public ResumptionDataDB {
- public:
- utils::dbms::SQLDatabase* get_db_handle() { return db(); }
-
- TestResumptionDataDB(DbStorage db_storage) : ResumptionDataDB(db_storage) {}
-};
-
+namespace {
+const std::string kPath =
+ file_system::CurrentWorkingDirectory() + "/" + "test_storage";
+}
class ResumptionDataDBTest : public ResumptionDataTest {
protected:
- virtual void SetUp() {
- app_mock = new NiceMock<ApplicationMock>();
+ void SetUp() OVERRIDE {
+ app_mock = utils::MakeShared<NiceMock<MockApplication> >();
policy_app_id_ = "test_policy_app_id";
app_id_ = 10;
is_audio_ = true;
@@ -78,7 +77,7 @@ class ResumptionDataDBTest : public ResumptionDataTest {
ign_off_count_ = 0;
grammar_id_ = 16;
}
- virtual void TearDown() {
+ void TearDown() OVERRIDE {
utils::dbms::SQLQuery query(test_db());
EXPECT_TRUE(query.Prepare(remove_all_tables));
EXPECT_TRUE(query.Exec());
@@ -87,12 +86,11 @@ class ResumptionDataDBTest : public ResumptionDataTest {
static void SetUpTestCase() {
kDatabaseName = "resumption";
if (is_in_file) {
- ::profile::Profile::instance()->config_file_name(
- "smartDeviceLink_test.ini");
- path_ = profile::Profile::instance()->app_storage_folder();
- CreateDirectory("./" + path_);
+ path_ = "test_storage";
+ CreateDirectory(file_system::CurrentWorkingDirectory() + "/" + path_);
+ CreateDirectory(kPath);
test_db_ = new utils::dbms::SQLDatabase(kDatabaseName);
- test_db_->set_path(path_ + "/");
+ test_db_->set_path(kPath + "/");
res_db_ = new TestResumptionDataDB(In_File_Storage);
} else {
res_db_ = new TestResumptionDataDB(In_Memory_Storage);
@@ -110,14 +108,17 @@ class ResumptionDataDBTest : public ResumptionDataTest {
static void TearDownTestCase() {
test_db_->Close();
if (is_in_file) {
- ::profile::Profile::instance()->config_file_name("smartDeviceLink.ini");
RemoveDirectory("./" + path_, true);
}
delete res_db_;
}
- utils::dbms::SQLDatabase* test_db() { return test_db_; }
- std::string path() { return path_; }
+ utils::dbms::SQLDatabase* test_db() {
+ return test_db_;
+ }
+ std::string path() {
+ return path_;
+ }
void SetZeroIgnOffTime() {
utils::dbms::SQLQuery query(test_db());
@@ -128,11 +129,12 @@ class ResumptionDataDBTest : public ResumptionDataTest {
static TestResumptionDataDB* res_db_;
- TestResumptionDataDB* res_db() { return res_db_; }
+ TestResumptionDataDB* res_db() {
+ return res_db_;
+ }
// Check that db includes tables with given elements
void CheckSavedDB();
-
static const bool is_in_file = false;
const std::string tables_exist =
"SELECT COUNT(*) FROM sqlite_master WHERE `type` = 'table';";
@@ -142,6 +144,7 @@ class ResumptionDataDBTest : public ResumptionDataTest {
const std::string remove_all_tables =
"DELETE FROM `resumption`; "
+ "DELETE FROM `subscribedForWayPoints`; "
"DELETE FROM `image`; "
"DELETE FROM `applicationChoiceSet`; "
"DELETE FROM `file`; "
@@ -205,7 +208,7 @@ void ResumptionDataDBTest::CheckSavedDB() {
void ResumptionDataDBTest::CheckExistenceApplication() {
utils::dbms::SQLQuery query(test_db());
EXPECT_TRUE(query.Prepare(kCheckApplication));
- query.Bind(0, device_id_);
+ query.Bind(0, kMacAddress_);
query.Bind(1, policy_app_id_);
EXPECT_TRUE(query.Exec());
EXPECT_EQ(1, query.GetInteger(0));
@@ -225,7 +228,7 @@ void ResumptionDataDBTest::CheckAppData() {
EXPECT_EQ(ign_off_count_, query.GetUInteger(6));
- EXPECT_EQ(device_id_, query.GetString(8));
+ EXPECT_EQ(kMacAddress_, query.GetString(8));
EXPECT_EQ(is_audio_, query.GetBoolean(9));
}
@@ -348,7 +351,7 @@ void ResumptionDataDBTest::CheckSubmenuData() {
EXPECT_TRUE(select_submenu.Prepare(kSelectCountSubMenu));
BindId(select_submenu);
EXPECT_TRUE(select_submenu.Exec());
- EXPECT_EQ(count_of_submenues, select_submenu.GetUInteger(0));
+ EXPECT_EQ(kCountOfSubmenues_, select_submenu.GetUInteger(0));
EXPECT_TRUE(select_submenu.Prepare(kSelectSubMenu));
BindId(select_submenu);
@@ -371,7 +374,7 @@ void ResumptionDataDBTest::CheckCommandsData() {
EXPECT_TRUE(select_commands.Prepare(kSelectCountCommands));
BindId(select_commands);
EXPECT_TRUE(select_commands.Exec());
- EXPECT_EQ(count_of_commands, select_commands.GetUInteger(0));
+ EXPECT_EQ(kCountOfCommands_, select_commands.GetUInteger(0));
EXPECT_TRUE(select_commands.Prepare(kSelectCommands));
BindId(select_commands);
@@ -419,7 +422,7 @@ void ResumptionDataDBTest::CheckChoiceSetData() {
EXPECT_TRUE(select_choice_set.Prepare(kSelectCountChoiceSet));
BindId(select_choice_set);
EXPECT_TRUE(select_choice_set.Exec());
- EXPECT_EQ(count_of_choice_sets, select_choice_set.GetUInteger(0));
+ EXPECT_EQ(kCountOfChoiceSets_, select_choice_set.GetUInteger(0));
EXPECT_TRUE(select_choice_set.Prepare(kSelectChoiceSets));
int64_t app_set_key = 0;
@@ -507,7 +510,7 @@ void ResumptionDataDBTest::CheckAppFilesData() {
EXPECT_TRUE(query.Prepare(kSelectCountFiles));
BindId(query);
EXPECT_TRUE(query.Exec());
- EXPECT_EQ(count_of_files, query.GetUInteger(0));
+ EXPECT_EQ(kCountOfFiles_, query.GetUInteger(0));
EXPECT_TRUE(query.Prepare(kSelectFiles));
BindId(query);
@@ -528,7 +531,7 @@ void ResumptionDataDBTest::CheckAppFilesData() {
void ResumptionDataDBTest::BindId(utils::dbms::SQLQuery& query) {
query.Bind(0, policy_app_id_);
- query.Bind(1, device_id_);
+ query.Bind(1, kMacAddress_);
}
TEST_F(ResumptionDataDBTest, Init) {
@@ -565,11 +568,12 @@ TEST_F(ResumptionDataDBTest, RemoveApplicationFromSaved) {
EXPECT_TRUE(res_db()->Init());
res_db()->SaveApplication(app_mock);
CheckSavedDB();
- EXPECT_TRUE(res_db()->RemoveApplicationFromSaved(policy_app_id_, device_id_));
+ EXPECT_TRUE(
+ res_db()->RemoveApplicationFromSaved(policy_app_id_, kMacAddress_));
sm::SmartObject remove_app;
EXPECT_FALSE(
- res_db()->GetSavedApplication(policy_app_id_, device_id_, remove_app));
+ res_db()->GetSavedApplication(policy_app_id_, kMacAddress_, remove_app));
EXPECT_TRUE(remove_app.empty());
}
@@ -608,7 +612,7 @@ TEST_F(ResumptionDataDBTest, IsApplicationSaved_ApplicationSaved) {
PrepareData();
EXPECT_TRUE(res_db()->Init());
res_db()->SaveApplication(app_mock);
- ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, device_id_);
+ ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, kMacAddress_);
EXPECT_EQ(0, result);
}
@@ -616,8 +620,9 @@ TEST_F(ResumptionDataDBTest, IsApplicationSaved_ApplicationRemoved) {
PrepareData();
EXPECT_TRUE(res_db()->Init());
res_db()->SaveApplication(app_mock);
- EXPECT_TRUE(res_db()->RemoveApplicationFromSaved(policy_app_id_, device_id_));
- ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, device_id_);
+ EXPECT_TRUE(
+ res_db()->RemoveApplicationFromSaved(policy_app_id_, kMacAddress_));
+ ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, kMacAddress_);
EXPECT_EQ(-1, result);
}
@@ -629,7 +634,7 @@ TEST_F(ResumptionDataDBTest, GetSavedApplication) {
sm::SmartObject saved_app;
EXPECT_TRUE(
- res_db()->GetSavedApplication(policy_app_id_, device_id_, saved_app));
+ res_db()->GetSavedApplication(policy_app_id_, kMacAddress_, saved_app));
CheckSavedApp(saved_app);
}
@@ -651,9 +656,10 @@ TEST_F(ResumptionDataDBTest, GetDataForLoadResumeData) {
res_db()->GetDataForLoadResumeData(saved_app);
EXPECT_EQ(policy_app_id_, saved_app[0][am::strings::app_id].asString());
- EXPECT_EQ(device_id_, saved_app[0][am::strings::device_id].asString());
- EXPECT_EQ(hmi_level_, static_cast<HMILevel::eType>(
- saved_app[0][am::strings::hmi_level].asInt()));
+ EXPECT_EQ(kMacAddress_, saved_app[0][am::strings::device_id].asString());
+ EXPECT_EQ(hmi_level_,
+ static_cast<HMILevel::eType>(
+ saved_app[0][am::strings::hmi_level].asInt()));
EXPECT_EQ(ign_off_count_, saved_app[0][am::strings::ign_off_count].asUInt());
}
@@ -664,7 +670,8 @@ TEST_F(ResumptionDataDBTest, GetDataForLoadResumeData_AppRemove) {
EXPECT_TRUE(res_db()->Init());
res_db()->SaveApplication(app_mock);
CheckSavedDB();
- EXPECT_TRUE(res_db()->RemoveApplicationFromSaved(policy_app_id_, device_id_));
+ EXPECT_TRUE(
+ res_db()->RemoveApplicationFromSaved(policy_app_id_, kMacAddress_));
res_db()->GetDataForLoadResumeData(saved_app);
EXPECT_TRUE(saved_app.empty());
}
@@ -675,7 +682,7 @@ TEST_F(ResumptionDataDBTest, UpdateHmiLevel) {
res_db()->SaveApplication(app_mock);
CheckSavedDB();
HMILevel::eType new_hmi_level = HMILevel::HMI_LIMITED;
- res_db()->UpdateHmiLevel(policy_app_id_, device_id_, new_hmi_level);
+ res_db()->UpdateHmiLevel(policy_app_id_, kMacAddress_, new_hmi_level);
hmi_level_ = new_hmi_level;
CheckSavedDB();
}
@@ -703,7 +710,7 @@ TEST_F(ResumptionDataDBTest, GetHMIApplicationID) {
res_db()->SaveApplication(app_mock);
CheckSavedDB();
EXPECT_EQ(hmi_app_id_,
- res_db()->GetHMIApplicationID(policy_app_id_, device_id_));
+ res_db()->GetHMIApplicationID(policy_app_id_, kMacAddress_));
}
TEST_F(ResumptionDataDBTest, GetHMIApplicationID_AppNotSaved) {
@@ -746,7 +753,7 @@ TEST_F(ResumptionDataDBTest, OnSuspendFourTimes) {
res_db()->OnSuspend();
- ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, device_id_);
+ ssize_t result = res_db()->IsApplicationSaved(policy_app_id_, kMacAddress_);
EXPECT_EQ(-1, result);
}
@@ -804,7 +811,7 @@ TEST_F(ResumptionDataDBTest, GetHashId) {
res_db()->SaveApplication(app_mock);
std::string test_hash;
- EXPECT_TRUE(res_db()->GetHashId(policy_app_id_, device_id_, test_hash));
+ EXPECT_TRUE(res_db()->GetHashId(policy_app_id_, kMacAddress_, test_hash));
EXPECT_EQ(hash_, test_hash);
}
@@ -832,6 +839,39 @@ TEST_F(ResumptionDataDBTest, GetIgnOffTime_AfterSuspendAndAwake) {
EXPECT_LE(after_suspend, after_awake);
}
+TEST_F(ResumptionDataDBTest, DropAppResumptionData) {
+ PrepareData();
+ EXPECT_TRUE(res_db()->Init());
+ SetZeroIgnOffTime();
+
+ res_db()->SaveApplication(app_mock);
+
+ EXPECT_TRUE(res_db()->DropAppDataResumption(kMacAddress_, policy_app_id_));
+
+ am::smart_objects::SmartObject app;
+ EXPECT_TRUE(res_db()->GetSavedApplication(policy_app_id_, kMacAddress_, app));
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_commands) &&
+ app[am::strings::application_commands].empty());
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_submenus) &&
+ app[am::strings::application_submenus].empty());
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_choice_sets) &&
+ app[am::strings::application_choice_sets].empty());
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_global_properties) &&
+ app[am::strings::application_global_properties].empty());
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_subscribtions) &&
+ app[am::strings::application_subscribtions].empty());
+
+ EXPECT_TRUE(app.keyExists(am::strings::application_files) &&
+ app[am::strings::application_files].empty());
+
+ EXPECT_FALSE(app.keyExists(am::strings::grammar_id));
+}
+
} // namespace resumption_test
} // namespace components
} // namespace test