mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
Add Database::user_known_bash_tags()
This commit is contained in:
@@ -68,6 +68,15 @@ std::vector<std::string> Database::GetKnownBashTags() const {
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<std::string> Database::GetUserKnownBashTags() const {
|
||||
try {
|
||||
return convert<std::string>(
|
||||
database_->user_known_bash_tags());
|
||||
} catch (const ::rust::Error& e) {
|
||||
std::rethrow_exception(mapError(e));
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<Message> Database::GetGeneralMessages(
|
||||
bool evaluateConditions) const {
|
||||
try {
|
||||
|
||||
@@ -30,6 +30,8 @@ public:
|
||||
|
||||
std::vector<std::string> GetKnownBashTags() const override;
|
||||
|
||||
std::vector<std::string> GetUserKnownBashTags() const override;
|
||||
|
||||
std::vector<Message> GetGeneralMessages(
|
||||
bool evaluateConditions = false) const override;
|
||||
|
||||
|
||||
@@ -111,6 +111,15 @@ impl Database {
|
||||
.known_bash_tags())
|
||||
}
|
||||
|
||||
pub fn user_known_bash_tags(&self) -> Result<Vec<String>, VerboseError> {
|
||||
Ok(self
|
||||
.0
|
||||
.read()
|
||||
.map_err(DatabaseLockPoisonError::from)?
|
||||
.user_known_bash_tags()
|
||||
.to_vec())
|
||||
}
|
||||
|
||||
pub fn general_messages(
|
||||
&self,
|
||||
evaluate_conditions: bool,
|
||||
|
||||
@@ -270,6 +270,8 @@ mod ffi {
|
||||
|
||||
pub fn known_bash_tags(&self) -> Result<Vec<String>>;
|
||||
|
||||
pub fn user_known_bash_tags(&self) -> Result<Vec<String>>;
|
||||
|
||||
pub fn general_messages(&self, evaluate_conditions: bool) -> Result<Vec<Message>>;
|
||||
|
||||
pub fn groups(&self, include_user_metadata: bool) -> Result<Vec<Group>>;
|
||||
|
||||
@@ -485,6 +485,23 @@ TEST_P(DatabaseInterfaceTest,
|
||||
EXPECT_EQ(expectedTags, tags);
|
||||
}
|
||||
|
||||
TEST_P(DatabaseInterfaceTest,
|
||||
getUserKnownBashTagsShouldReturnAllBashTagsListedInLoadedUserMetadata) {
|
||||
ASSERT_NO_THROW(GenerateMasterlist());
|
||||
ASSERT_NO_THROW(GenerateUserlist());
|
||||
|
||||
ASSERT_NO_THROW(handle_->GetDatabase().LoadMasterlist(masterlistPath));
|
||||
ASSERT_NO_THROW(handle_->GetDatabase().LoadUserlist(userlistPath_));
|
||||
|
||||
auto tags = handle_->GetDatabase().GetUserKnownBashTags();
|
||||
|
||||
std::vector<std::string> expectedTags({
|
||||
"RaceRelations",
|
||||
"C.Lighting",
|
||||
});
|
||||
EXPECT_EQ(expectedTags, tags);
|
||||
}
|
||||
|
||||
TEST_P(DatabaseInterfaceTest,
|
||||
getGeneralMessagesShouldGetGeneralMessagesFromTheMasterlistAndUserlist) {
|
||||
ASSERT_NO_THROW(GenerateMasterlist());
|
||||
|
||||
Reference in New Issue
Block a user