summaryrefslogtreecommitdiff
path: root/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc')
-rw-r--r--src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc342
1 files changed, 0 insertions, 342 deletions
diff --git a/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc b/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc
deleted file mode 100644
index f89a2ce0c7..0000000000
--- a/src/components/policy/policy_external/test/policy_manager_impl_snapshot_test.cc
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- * Copyright (c) 2016, Ford Motor Company
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following
- * disclaimer in the documentation and/or other materials provided with the
- * distribution.
- *
- * Neither the name of the Ford Motor Company nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <fstream>
-
-#include "gtest/gtest.h"
-
-#include "policy/policy_manager_impl_test_base.h"
-
-#include "json/json.h"
-
-namespace test {
-namespace components {
-namespace policy_test {
-
-using ::testing::Return;
-
-TEST_F(PolicyManagerImplTest2, UpdatedPreloadedPT_ExpectLPT_IsUpdated) {
- // Arrange necessary pre-conditions
- StringsForUpdate new_data;
- new_data.new_field_name_ = "Notifications-";
- CreateNewRandomData(new_data);
- // Create Initial LocalPT from preloadedPT
- CreateLocalPT(preloaded_pt_filename_);
- // Update preloadedPT
- std::ifstream ifile(preloaded_pt_filename_);
- Json::CharReaderBuilder reader_builder;
- Json::Value root(Json::objectValue);
-
- if (ifile.is_open() &&
- Json::parseFromStream(reader_builder, ifile, &root, nullptr)) {
- root["policy_table"]["module_config"]["preloaded_date"] =
- new_data.new_date_;
- Json::Value val(Json::objectValue);
- Json::Value val2(Json::arrayValue);
- val2[0] = hmi_level_[index_];
- val[new_data.new_field_value_]["hmi_levels"] = val2;
- root["policy_table"]["functional_groupings"][new_data.new_field_name_]
- ["rpcs"] = val;
- root["policy_table"]["functional_groupings"][new_data.new_field_name_]
- ["user_consent_prompt"] = new_data.new_field_name_;
- }
- ifile.close();
-
- std::ofstream ofile(preloaded_pt_filename_);
- ofile << root;
- ofile.flush();
- ofile.close();
-
- // Make PolicyManager to update LocalPT
- policy::CacheManagerInterfaceSPtr cache = policy_manager_->GetCache();
- EXPECT_TRUE(
- policy_manager_->InitPT(preloaded_pt_filename_, &policy_settings_));
- EXPECT_TRUE(cache->IsPTPreloaded());
-
- // Arrange
- std::shared_ptr<policy_table::Table> table = cache->GenerateSnapshot();
- // Get FunctionalGroupings
- policy_table::FunctionalGroupings& fc =
- table->policy_table.functional_groupings;
- // Get RPCs for new added field in functional_group
- policy_table::Rpcs& rpcs = fc[new_data.new_field_name_];
- // Get user consent prompt
- const std::string& ucp = *(rpcs.user_consent_prompt);
- // Get Rpcs
- policy_table::Rpc& rpc = rpcs.rpcs;
- // Get RPC's parameters
- policy_table::RpcParameters& rpc_param = rpc[new_data.new_field_value_];
-
- // Check preloaded date
- EXPECT_EQ(static_cast<std::string>(
- *(table->policy_table.module_config.preloaded_date)),
- new_data.new_date_);
- // Check if new field exists in Local PT
- EXPECT_TRUE(fc.find(new_data.new_field_name_) != fc.end());
- // Check if user_consent_propmp is correct
- EXPECT_EQ(new_data.new_field_name_, ucp);
- // Check if new RPC exists
- EXPECT_TRUE(rpc.find(new_data.new_field_value_) != rpc.end());
- // Check HMI level of new RPC
- EXPECT_EQ(index_, static_cast<uint32_t>(rpc_param.hmi_levels[0]));
- // Check if new field matches field added to preloaded PT
- EXPECT_EQ(std::string((*(fc.find(new_data.new_field_name_))).first),
- new_data.new_field_name_);
-}
-
-TEST_F(PolicyManagerImplTest2,
- SetSystemLanguage_ExpectSystemLanguageSetSuccessfully) {
- // Arrange
- CreateLocalPT(preloaded_pt_filename_);
- policy_manager_->SetSystemLanguage("it-it");
- std::shared_ptr<policy_table::Table> pt =
- (policy_manager_->GetCache())->GetPT();
- ::policy_table::ModuleMeta& ModuleMeta = *(pt->policy_table.module_meta);
- EXPECT_EQ("it-it", static_cast<std::string>(*(ModuleMeta.language)));
-}
-
-TEST_F(PolicyManagerImplTest2, SetVINValue_ExpectVINSetSuccessfully) {
- // Arrange
- CreateLocalPT(preloaded_pt_filename_);
- std::string vin_code("1FAPP6242VH100001");
- policy_manager_->SetVINValue(vin_code);
- std::shared_ptr<policy_table::Table> pt =
- (policy_manager_->GetCache())->GetPT();
- ::policy_table::ModuleMeta& ModuleMeta = *(pt->policy_table.module_meta);
- EXPECT_EQ(vin_code, static_cast<std::string>(*(ModuleMeta.vin)));
-}
-
-TEST_F(PolicyManagerImplTest2, SetSystemInfo_ExpectSystemInfoSetSuccessfully) {
- // Arrange
- CreateLocalPT(preloaded_pt_filename_);
- policy_manager_->SetSystemInfo("4.1.3.B_EB355B", "WAEGB", "ru-ru");
- policy::CacheManagerInterfaceSPtr cache = policy_manager_->GetCache();
- std::shared_ptr<policy_table::Table> pt = cache->GetPT();
- ::policy_table::ModuleMeta& ModuleMeta = *(pt->policy_table.module_meta);
- EXPECT_EQ("ru-ru", static_cast<std::string>(*(ModuleMeta.language)));
- EXPECT_EQ("4.1.3.B_EB355B",
- static_cast<std::string>(*(ModuleMeta.ccpu_version)));
- EXPECT_EQ("WAEGB", static_cast<std::string>(*(ModuleMeta.wers_country_code)));
- EXPECT_FALSE(cache->IsPTPreloaded());
-}
-
-TEST_F(PolicyManagerImplTest2, CleanUnpairedDevice_ExpectDevicesDeleted) {
- // Arrange
- CreateLocalPT(preloaded_pt_filename_);
- // Add first device
- ::policy::DeviceInfo dev_info1;
- dev_info1.hardware = "hardware IPX";
- dev_info1.firmware_rev = "v.8.0.1";
- dev_info1.os = "Android";
- dev_info1.os_ver = "4.4.2";
- dev_info1.carrier = "Life";
- dev_info1.max_number_rfcom_ports = 2;
- dev_info1.connection_type = "Bluetooth";
- policy_manager_->AddDevice(device_id_1_, "Bluetooth");
- policy_manager_->SetDeviceInfo(device_id_1_, dev_info1);
-
- // Add second device
- ::policy::DeviceInfo dev_info2;
- dev_info2.hardware = "hardware SPX";
- dev_info2.firmware_rev = "v.6.0.1";
- dev_info2.os = "Android";
- dev_info2.os_ver = "4.1.1";
- dev_info2.carrier = "MTS";
- dev_info2.max_number_rfcom_ports = 2;
- dev_info2.connection_type = "Bluetooth";
- policy_manager_->AddDevice("ZZZ123456789YYY", "Bluetooth");
- policy_manager_->SetDeviceInfo("ZZZ123456789YYY", dev_info2);
-
- // Add third device
- ::policy::DeviceInfo dev_info3;
- dev_info3.hardware = "hardware DNPX";
- dev_info3.firmware_rev = "v.4.0.1";
- dev_info3.os = "Android";
- dev_info3.os_ver = "5.0.1 Lollipop";
- dev_info3.carrier = "Kyivstar";
- dev_info3.max_number_rfcom_ports = 2;
- dev_info3.connection_type = "Bluetooth";
- policy_manager_->AddDevice("AAA123456789RRR", "Bluetooth");
- policy_manager_->SetDeviceInfo("AAA123456789RRR", dev_info3);
-
- std::shared_ptr<policy_table::Table> pt =
- (policy_manager_->GetCache())->GetPT();
- // Try to find first device in PT
- policy_table::DeviceData::const_iterator iter =
- (*(pt->policy_table.device_data)).find(device_id_1_);
- // Check first device successfully added to PT
- ASSERT_TRUE(iter != (*(pt->policy_table.device_data)).end());
-
- // Try to find second device in PT
- iter = (*(pt->policy_table.device_data)).find("ZZZ123456789YYY");
- // Check second device successfully added to PT
- ASSERT_TRUE(iter != (*(pt->policy_table.device_data)).end());
-
- // Try to find third device in PT
- iter = (*(pt->policy_table.device_data)).find("AAA123456789RRR");
- // Check third device successfully added to PT
- ASSERT_TRUE(iter != (*(pt->policy_table.device_data)).end());
-
- policy_manager_->MarkUnpairedDevice(device_id_1_);
- policy_manager_->MarkUnpairedDevice("ZZZ123456789YYY");
- policy_manager_->MarkUnpairedDevice("AAA123456789RRR");
- policy_manager_->CleanupUnpairedDevices();
-
- // Try to find first device in PT
- iter = (*(pt->policy_table.device_data)).find(device_id_1_);
- // Check first device successfully deleted from PT
- ASSERT_TRUE(iter == (*(pt->policy_table.device_data)).end());
-
- // Try to find second device in PT
- iter = (*(pt->policy_table.device_data)).find("ZZZ123456789YYY");
- // Check second device successfully deleted from PT
- ASSERT_TRUE(iter == (*(pt->policy_table.device_data)).end());
-
- // Try to find third device in PT
- iter = (*(pt->policy_table.device_data)).find("AAA123456789RRR");
- // Check third device successfully deleted from PT
- ASSERT_TRUE(iter == (*(pt->policy_table.device_data)).end());
-}
-
-TEST_F(PolicyManagerImplTest2,
- AddValidRequestTypesToPT_default_Section_ExpectRTAdded) {
- // Arrange
- AddRTtoPT(kPtuJson, policy::kDefaultId, 1u, 0);
- CheckResultForValidRT();
-}
-
-TEST_F(PolicyManagerImplTest2,
- AddValidRequestTypeToPT_preDataConsentSection_ExpectRTAdded) {
- // Arrange
- AddRTtoPT(kPtuJson, policy::kPreDataConsentId, 1u, 0u);
- CheckResultForValidRT();
-}
-
-TEST_F(PolicyManagerImplTest2,
- AddInvalidRequestTypeToPT_defaultSection_ExpectIgnored) {
- // Arrange
- AddRTtoPT(kPtu3Json, policy::kDefaultId, 1u, 0u);
- CheckResultForInvalidRT();
-}
-
-TEST_F(PolicyManagerImplTest2,
- AddInvalidRequestTypeToPT_pre_DataConsentSection_ExpectIgnored) {
- // Arrange
- AddRTtoPT(kPtu3Json, policy::kPreDataConsentId, 1u, 1u);
- CheckResultForInvalidRT();
-}
-
-TEST_F(
- PolicyManagerImplTest2,
- AddValidRequestTypeToPT_GetNewAppWithSpecificPoliciesViaPTU_ExpectRTAdded) {
- const std::string& app_id = application_id_;
- const transport_manager::DeviceHandle handle = 1;
-
- // Arrange
- CreateLocalPT(preloaded_pt_filename_);
- EXPECT_CALL(listener_, GetDevicesIds(app_id))
- .WillRepeatedly(Return(transport_manager::DeviceList(1, device_id_1_)));
- // Add app
- policy_manager_->AddApplication(
- device_id_1_, app_id, HmiTypes(policy_table::AHT_DEFAULT));
- // Check app gets RequestTypes from pre_DataConsent of app_policies
- // section
- pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, app_id);
-
- // Only single item as in pre_DataConsent in preloaded PT
- EXPECT_EQ(1u, pt_request_types_.size());
- EXPECT_CALL(listener_, OnPendingPermissionChange(device_id_1_, app_id))
- .Times(1);
-
- // PTU has RequestTypes as [] - means 'all allowed'
- Json::Value root = GetPTU("json/PTU2.json");
-
- // Setting device consent to 'true' in order to have appropriate application
- // permissions, request type etc.
- EXPECT_CALL(listener_, OnCurrentDeviceIdUpdateRequired(handle, app_id))
- .WillRepeatedly(Return(device_id_1_));
- policy_manager_->SetUserConsentForDevice(device_id_1_, true);
-
- // Get App Request Types from PTU
- ptu_request_types_ =
- root["policy_table"]["app_policies"][app_id]["RequestType"];
- ptu_request_types_size_ = ptu_request_types_.size();
-
- pt_request_types_.clear();
- // Get RequestTypes from <app_id> section of app policies after PT update
- pt_request_types_ = policy_manager_->GetAppRequestTypes(handle, app_id);
-
- // Check sizes of Request types of PT and PTU
- ASSERT_EQ(ptu_request_types_size_, pt_request_types_.size());
-
- ::policy::AppPermissions permissions =
- policy_manager_->GetAppPermissionsChanges(device_id_1_, app_id);
- EXPECT_TRUE(permissions.requestTypeChanged);
-
- ::policy::StringArray result;
- for (uint32_t i = 0; i < ptu_request_types_size_; ++i) {
- result.push_back(ptu_request_types_[i].asString());
- }
- std::sort(pt_request_types_.begin(), pt_request_types_.end());
- std::sort(result.begin(), result.end());
- // Checks
- ASSERT_EQ(pt_request_types_.size(), result.size());
- EXPECT_TRUE(std::equal(
- pt_request_types_.begin(), pt_request_types_.end(), result.begin()));
-}
-
-TEST_F(PolicyManagerImplTest2, AddDevice_RegisterDevice_TRUE) {
- const std::string connection_type = "Bluetooth";
-
- const bool result =
- (policy_manager_->GetCache())->AddDevice(device_id_1_, connection_type);
- // Get Policy table
- const std::shared_ptr<policy_table::Table> policy_table =
- policy_manager_->GetCache()->GetPT();
- // Get preloaded_pt flag from Policy table
- const bool is_preloaded_pt =
- *policy_table->policy_table.module_config.preloaded_pt;
- // Get connection_type from policy_table
- const policy_table::DeviceParams& params =
- (*policy_table->policy_table.device_data)[device_id_1_];
- const std::string expected_connection_type = *params.connection_type;
-
- // Expect
- EXPECT_EQ(connection_type, expected_connection_type);
- // After adding device preloaded_pt must be false
- EXPECT_FALSE(is_preloaded_pt);
- EXPECT_TRUE(result);
-}
-
-} // namespace policy_test
-} // namespace components
-} // namespace test