gnucash stable: [gnc-commodities.cpp] expose auto_quote_control kvp to test them
Christopher Lam
clam at code.gnucash.org
Tue Jul 1 20:14:41 EDT 2025
Updated via https://github.com/Gnucash/gnucash/commit/e7f05b9b (commit)
from https://github.com/Gnucash/gnucash/commit/aa339b46 (commit)
commit e7f05b9baacff231000b78b2e5d94f2f894c6280
Author: Christopher Lam <christopher.lck at gmail.com>
Date: Tue Jul 1 18:27:20 2025 +0800
[gnc-commodities.cpp] expose auto_quote_control kvp to test them
diff --git a/libgnucash/engine/gnc-commodity.cpp b/libgnucash/engine/gnc-commodity.cpp
index 1fba1aae4e..45263024a3 100644
--- a/libgnucash/engine/gnc-commodity.cpp
+++ b/libgnucash/engine/gnc-commodity.cpp
@@ -1013,7 +1013,7 @@ gnc_commodity_get_fraction(const gnc_commodity * cm)
* gnc_commodity_get_auto_quote_control_flag
********************************************************************/
-static gboolean
+gboolean
gnc_commodity_get_auto_quote_control_flag(const gnc_commodity *cm)
{
GValue v = G_VALUE_INIT;
@@ -1241,7 +1241,7 @@ gnc_commodity_set_fraction(gnc_commodity * cm, int fraction)
* gnc_commodity_set_auto_quote_control_flag
********************************************************************/
-static void
+void
gnc_commodity_set_auto_quote_control_flag(gnc_commodity *cm,
const gboolean flag)
{
diff --git a/libgnucash/engine/gnc-commodity.h b/libgnucash/engine/gnc-commodity.h
index 6bef47643e..d273516007 100644
--- a/libgnucash/engine/gnc-commodity.h
+++ b/libgnucash/engine/gnc-commodity.h
@@ -319,6 +319,8 @@ gnc_commodity * gnc_commodity_clone(const gnc_commodity *src, QofBook *dest_book
@{
*/
+gboolean gnc_commodity_get_auto_quote_control_flag (const gnc_commodity *cm);
+
/** Retrieve the mnemonic for the specified commodity. This will be a
* pointer to a null terminated string of the form "ACME", "QWER",
* etc.
@@ -492,6 +494,8 @@ const char*gnc_commodity_get_nice_symbol(const gnc_commodity *cm);
@{
*/
+void gnc_commodity_set_auto_quote_control_flag (gnc_commodity *cm, const gboolean flag);
+
/** Set the mnemonic for the specified commodity. This should be a
* pointer to a null terminated string of the form "ACME", "QWER",
* etc.
diff --git a/libgnucash/engine/test/test-commodities.cpp b/libgnucash/engine/test/test-commodities.cpp
index f2fe8ef58a..81b7f63752 100644
--- a/libgnucash/engine/test/test-commodities.cpp
+++ b/libgnucash/engine/test/test-commodities.cpp
@@ -27,6 +27,7 @@
#include <config.h>
#include "gnc-commodity.h"
+#include "qofinstance-p.h"
#include "qof.h"
#include "test-engine-stuff.h"
#include "test-stuff.h"
@@ -233,6 +234,30 @@ test_commodity(void)
}
+static void
+test_auto_quote_control_flag ()
+{
+ auto book{qof_book_new ()};
+ auto com{gnc_commodity_new(book, NULL, NULL, NULL, NULL, 0)};
+ auto get_kvp = [com]()
+ { return qof_instance_get_path_kvp<const char*> (QOF_INSTANCE (com), {"auto_quote_control"}); };
+
+ g_assert_true (gnc_commodity_get_auto_quote_control_flag (com));
+ g_assert_false (get_kvp ().has_value());
+
+ gnc_commodity_set_auto_quote_control_flag (com, false);
+ g_assert_false (gnc_commodity_get_auto_quote_control_flag (com));
+ g_assert_true (get_kvp ().has_value());
+ g_assert_cmpstr (*get_kvp (), ==, "false");
+
+ gnc_commodity_set_auto_quote_control_flag (com, true);
+ g_assert_true (gnc_commodity_get_auto_quote_control_flag (com));
+ g_assert_false (get_kvp ().has_value());
+
+ gnc_commodity_destroy(com);
+ qof_book_destroy (book);
+}
+
int
main (int argc, char **argv)
{
@@ -243,6 +268,7 @@ main (int argc, char **argv)
test_commodity();
test_quote_sources ();
+ test_auto_quote_control_flag ();
print_test_results();
Summary of changes:
libgnucash/engine/gnc-commodity.cpp | 4 ++--
libgnucash/engine/gnc-commodity.h | 4 ++++
libgnucash/engine/test/test-commodities.cpp | 26 ++++++++++++++++++++++++++
3 files changed, 32 insertions(+), 2 deletions(-)
More information about the gnucash-changes
mailing list