BuildRequires: pkgconfig(dpl-utils-efl)
BuildRequires: pkgconfig(dpl-wrt-dao-ro)
BuildRequires: pkgconfig(dpl-wrt-dao-rw)
+BuildRequires: pkgconfig(wrt-commons-i18n-dao-ro)
BuildRequires: pkgconfig(security-install)
BuildRequires: pkgconfig(ecore-x)
BuildRequires: pkgconfig(xmlsec1)
pkgmgr-info
pkgmgr
security-install
+ wrt-commons-i18n-dao-ro
REQUIRED)
INCLUDE_DIRECTORIES(
#include <dpl/log/log.h>
#include <dpl/db/orm.h>
#include <dpl/string.h>
-#include <dpl/wrt-dao-ro/global_dao_read_only.h>
+#include <dpl/scope_guard.h>
+#include <wrt-commons/i18n-dao-ro/i18n_dao_read_only.h>
+#include <wrt-commons/i18n-dao-ro/i18n_database.h>
#include <iterator>
#include <vector>
#include <ctype.h>
#include <dpl/singleton_impl.h>
IMPLEMENT_SINGLETON(LanguageSubtagRstTree)
+namespace I18nDAOReadOnly = I18n::DB::I18nDAOReadOnly;
+
bool LanguageSubtagRstTree::ValidateLanguageTag(const std::string &tag_input)
{
std::string tag = tag_input;
std::back_inserter(parts),
false);
std::vector<DPL::String>::iterator token = parts.begin();
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return false;
}
- if (WrtDB::GlobalDAOReadOnly::IsValidSubTag(*token,
- RECORD_TYPE_LANGUAGE))
+
+ I18n::DB::Interface::attachDatabaseRO();
+ DPL_SCOPE_EXIT()
+ {
+ I18n::DB::Interface::detachDatabase();
+ };
+
+ if (I18nDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_LANGUAGE))
{
++token;
- } else {
+ }
+ else
+ {
return false;
}
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- if (WrtDB::GlobalDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_EXTLANG)) {
+
+ if (I18nDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_EXTLANG))
+ {
++token;
}
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- if (WrtDB::GlobalDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_SCRIPT)) {
+
+ if (I18nDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_SCRIPT))
+ {
++token;
}
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- if (WrtDB::GlobalDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_REGION)) {
+
+ if (I18nDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_REGION))
+ {
++token;
}
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- while (token != parts.end()) {
- if (WrtDB::GlobalDAOReadOnly::IsValidSubTag(
- *token, RECORD_TYPE_VARIANT))
+
+ while (token != parts.end())
+ {
+ if (I18nDAOReadOnly::IsValidSubTag(*token, RECORD_TYPE_VARIANT))
{
++token;
- } else {
+ }
+ else
+ {
break;
}
}
//'u' - unicode extension - only one BCP47 extension is registered.
//TODO: unicode extension should be also validated (l.wrzosek)
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- if (*token == L"u") {
+
+ if (*token == L"u")
+ {
++token;
bool one_or_more = false;
while (token != parts.end() &&
one_or_more = true;
++token;
}
- if (!one_or_more) {
+ if (!one_or_more)
+ {
return false;
}
}
//'x' - privateuse
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
- if (*token == L"x") {
+
+ if (*token == L"x")
+ {
++token;
bool one_or_more = false;
while (token != parts.end() &&
one_or_more = true;
++token;
}
- if (!one_or_more) {
+ if (!one_or_more)
+ {
return false;
}
}
- if (token == parts.end()) {
+ if (token == parts.end())
+ {
return true;
}
//Try private use now:
token = parts.begin();
- if (*token == L"x") {
+ if (*token == L"x")
+ {
++token;
bool one_or_more = false;
while (token != parts.end() &&
ADD_LIBRARY(${WRT_TEST_LIBRARY} STATIC ${WRT_DETAIL_SOURCES})
+
+SET(INSTALLER_TESTS_TARGET "wrt-installer-tests-general")
+
+PKG_CHECK_MODULES(INSTALLER_TESTS_DEPS
+ wrt-commons-i18n-dao-ro
+ REQUIRED)
+
SET(INSTALLER_TESTS_SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/TestInit.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ManifestTests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/ParsingTizenAppcontrolTests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/WidgetUpdateTests.cpp
${CMAKE_CURRENT_SOURCE_DIR}/PluginsInstallation.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/LanguageSubtagRstTreeTests.cpp
+ ${CMAKE_SOURCE_DIR}/src/wrt-installer/language_subtag_rst_tree.cpp
)
-SET(INSTALLER_TESTS_TARGET "wrt-installer-tests-general")
+SET(INSTALLER_TESTS_INCLUDE_DIRS
+ ${INSTALLER_TESTS_DEPS_INCLUDE_DIRS}
+ ${CMAKE_SOURCE_DIR}/src/wrt-installer
+)
# Functions used to build test targets (proper sources, includes, libs are
# added automatically)
FUNCTION(WRT_TEST_BUILD TARGET_NAME)
- SET(SOURCES "${ARGN}")
- ADD_EXECUTABLE("${TARGET_NAME}" ${SOURCES})
-
# get include dirs global property
GET_PROPERTY(INCLUDE_DIRS GLOBAL PROPERTY TESTS_INCLUDE_DIRS)
GET_PROPERTY(TEST_INCLUDE_DIRS GLOBAL PROPERTY ${TARGET_NAME}_INCLUDE_DIRS)
${TEST_LIBRARY_DIRS}
)
+ SET(SOURCES "${ARGN}")
+ ADD_EXECUTABLE("${TARGET_NAME}" ${SOURCES})
+
# get link libraries global property
GET_PROPERTY(LINK_LIBRARIES GLOBAL PROPERTY TESTS_LIBRARIES)
GET_PROPERTY(TEST_LIBRARIES GLOBAL PROPERTY ${TARGET_NAME}_LIBRARIES)
)
ENDFUNCTION(WRT_TEST_INSTALL)
+FUNCTION(WRT_TEST_INCLUDE_DIRS TARGET_NAME)
+ SET_PROPERTY(GLOBAL APPEND PROPERTY ${TARGET_NAME}_INCLUDE_DIRS ${ARGN})
+ENDFUNCTION(WRT_TEST_INCLUDE_DIRS)
+
+WRT_TEST_INCLUDE_DIRS(${INSTALLER_TESTS_TARGET} ${INSTALLER_TESTS_INCLUDE_DIRS})
WRT_TEST_BUILD(${INSTALLER_TESTS_TARGET} ${INSTALLER_TESTS_SOURCES})
WRT_TEST_INSTALL(${INSTALLER_TESTS_TARGET})
target_link_libraries(${INSTALLER_TESTS_TARGET}
${WRT_TEST_LIBRARY}
${TARGET_CORE_MODULE_LIB}
${COMMON_LIB_PKGS_LIBRARIES}
+ ${INSTALLER_TESTS_DEPS_LIBRARIES}
)
#widgets
--- /dev/null
+/*
+ * Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @file LanguageSubtagRstTreeTests.cpp
+ * @author Zbigniew Kostrzewa (z.kostrzewa@samsung.com)
+ * @version 1.0
+ * @brief Language tags tests
+ */
+
+#include <dpl/test/test_runner.h>
+#include <language_subtag_rst_tree.h>
+
+namespace {
+const char LANGUAGE_TAG_VALID[] = "en-us";
+const char LANGUAGE_TAG_INVALID[] = "invalid0";
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+RUNNER_TEST_GROUP_INIT(LanguageSubtagRstTree)
+
+/*
+Name: ValidateLanguageTag_Valid
+Description: tests result returned for valid language tag
+Expected: value true should be returned
+*/
+RUNNER_TEST(ValidateLanguageTag_Valid)
+{
+ RUNNER_ASSERT(LanguageSubtagRstTreeSingleton::Instance().
+ ValidateLanguageTag(LANGUAGE_TAG_VALID));
+}
+
+/*
+Name: ValidateLanguageTag_Invalid
+Description: tests result returned for invalid language tag
+Expected: value false should be returned
+*/
+RUNNER_TEST(ValidateLanguageTag_Invalid)
+{
+ RUNNER_ASSERT(!LanguageSubtagRstTreeSingleton::Instance().
+ ValidateLanguageTag(LANGUAGE_TAG_INVALID));
+}