aboutsummaryrefslogtreecommitdiffstats
path: root/test/lua
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2020-10-30 14:46:29 +0100
committerWireshark GitLab Utility <gerald+gitlab-utility@wireshark.org>2020-12-08 22:56:50 +0000
commit9cafd342acbcfc4482f7671c9996cd2d87f38fbe (patch)
treeb95065028bafcad668b2a92b6fadc684b8936755 /test/lua
parentc7e6b798255e9d78d88abb84b951ca7815e0f880 (diff)
Lua: Add get_preference() and set_preference() utility functions.
Support uint, bool, enum, string, range, filename and directory preferences. Added apply_preferences() to write to file and apply changes.
Diffstat (limited to 'test/lua')
-rw-r--r--test/lua/util.lua123
1 files changed, 123 insertions, 0 deletions
diff --git a/test/lua/util.lua b/test/lua/util.lua
new file mode 100644
index 0000000000..cb5b710252
--- /dev/null
+++ b/test/lua/util.lua
@@ -0,0 +1,123 @@
+-- test script for wslua utility functions
+
+
+------------- helper funcs ------------
+local function testing(...)
+ print("---- Testing "..tostring(...).." ----")
+end
+
+local function test(name, ...)
+ io.stdout:write("test "..name.."...")
+ if (...) == true then
+ io.stdout:write("passed\n")
+ else
+ io.stdout:write("failed!\n")
+ error(name.." test failed!")
+ end
+end
+
+--------------------------
+
+-- Note: This tests expects some specific default values
+testing("get_preference")
+
+success = pcall(get_preference)
+test("get_preference-empty-0", not success)
+test("get_preference-empty-1",get_preference("") == nil)
+test("get_preference-unknown-0",get_preference("g") == nil)
+test("get_preference-unknown-1",get_preference("gui") == nil)
+test("get_preference-unknown-2",get_preference("gui.") == nil)
+test("get_preference-unknown-3",get_preference("gui.ask") == nil)
+test("get_preference-unknown-4",get_preference("ugi.ask_unsaved") == nil)
+test("get_preference-uint-0",get_preference("gui.fileopen.preview") == 3)
+test("get_preference-bool-0",get_preference("gui.ask_unsaved") == true)
+test("get_preference-bool-1",get_preference("gui.interfaces_show_hidden") == false)
+test("get_preference-enum-1",get_preference("gui.console_open") == "NEVER")
+test("get_preference-string-0",get_preference("gui.window_title") == "")
+test("get_preference-range-0",get_preference("http.tls.port") == "443")
+success = pcall(get_preference, "user_dlt.encaps_table")
+test("get_preference-uat-0", not success)
+
+--------------------------
+
+testing("set_preference")
+
+success = pcall(set_preference)
+test("set_preference-empty-0", not success)
+test("set_preference-empty-1",set_preference("") == nil)
+test("set_preference-unknown-0",set_preference("g") == nil)
+test("set_preference-unknown-1",set_preference("gui") == nil)
+test("set_preference-unknown-2",set_preference("gui.") == nil)
+test("set_preference-unknown-3",set_preference("gui.ask") == nil)
+test("set_preference-unknown-4",set_preference("ugi.ask_unsaved") == nil)
+success = pcall(set_preference,"gui.fileopen.preview")
+test("set_preference-uint-0", not success)
+success = pcall(set_preference,"gui.fileopen.preview",true)
+test("set_preference-uint-1", not success)
+success = pcall(set_preference,"gui.fileopen.preview","string")
+test("set_preference-uint-2", not success)
+test("set_preference-uint-3",set_preference("gui.fileopen.preview",3) == false)
+test("set_preference-uint-4",set_preference("gui.fileopen.preview",42) == true)
+test("set_preference-uint-4-get",get_preference("gui.fileopen.preview") == 42)
+success = pcall(set_preference,"gui.ask_unsaved")
+test("set_preference-bool-0", not success)
+success = pcall(set_preference,"gui.ask_unsaved",42)
+test("set_preference-bool-1", not success)
+success = pcall(set_preference,"gui.ask_unsaved","string")
+test("set_preference-bool-2", not success)
+test("set_preference-bool-3",set_preference("gui.ask_unsaved", true) == false)
+test("set_preference-bool-4",set_preference("gui.ask_unsaved", false) == true)
+success = pcall(set_preference,"gui.console_open")
+test("set_preference-enum-0", not success)
+success = pcall(set_preference,"gui.console_open",true)
+test("set_preference-enum-1", not success)
+test("set_preference-enum-2",set_preference("gui.console_open","NEVER") == false)
+test("set_preference-enum-3",set_preference("gui.console_open","AUTOMATIC") == true)
+test("set_preference-enum-3-get",get_preference("gui.console_open") == "AUTOMATIC")
+test("set_preference-enum-4",set_preference("gui.console_open","ALWAYS") == true)
+test("set_preference-enum-5",set_preference("gui.console_open","unknown") == false)
+test("set_preference-enum-6",set_preference("gui.console_open",42) == false)
+success = pcall(set_preference,"gui.window_title")
+test("set_preference-string-0", not success)
+success = pcall(set_preference,"gui.window_title",true)
+test("set_preference-string-1", not success)
+test("set_preference-string-2",set_preference("gui.window_title","Title") == true)
+test("set_preference-string-2-get",get_preference("gui.window_title") == "Title")
+test("set_preference-string-3",set_preference("gui.window_title","Title") == false)
+test("set_preference-string-4",set_preference("gui.window_title","") == true)
+test("set_preference-string-4-get",get_preference("gui.window_title") == "")
+test("set_preference-string-5",set_preference("gui.window_title","") == false)
+success = pcall(set_preference,"http.tls.port")
+test("set_preference-range-0", not success)
+success = pcall(set_preference,"http.tls.port","65536") -- Number too big
+test("set_preference-range-1", not success)
+success = pcall(set_preference,"http.tls.port","http") -- Syntax error
+test("set_preference-range-2", not success)
+test("set_preference-range-3",set_preference("http.tls.port","443") == false)
+test("set_preference-range-4",set_preference("http.tls.port","443-444") == true)
+test("set_preference-range-4-get",get_preference("http.tls.port") == "443-444")
+test("set_preference-range-5",set_preference("http.tls.port","443-444") == false)
+success = pcall(set_preference, "user_dlt.encaps_table")
+test("set_preference-uat-0", not success)
+
+--------------------------
+
+testing("reset_preference")
+
+success = pcall(set_preference)
+test("reset_preference-empty-0", not success)
+test("reset_preference-empty-1",reset_preference("") == nil)
+test("reset_preference-unknown-0",reset_preference("unknown") == nil)
+test("reset_preference-uint-0",reset_preference("gui.fileopen.preview") == true)
+test("reset_preference-uint-0-get",get_preference("gui.fileopen.preview") == 3)
+test("reset_preference-bool-0",reset_preference("gui.ask_unsaved") == true)
+test("reset_preference-bool-0-get",get_preference("gui.ask_unsaved") == true)
+test("reset_preference-enum-0",reset_preference("gui.console_open") == true)
+test("reset_preference-enum-0-get",get_preference("gui.console_open") == "NEVER")
+test("reset_preference-string-0",reset_preference("gui.window_title") == true)
+test("reset_preference-string-0-get",get_preference("gui.window_title") == "")
+test("reset_preference-range-0",reset_preference("http.tls.port") == true)
+test("reset_preference-range-0-get",get_preference("http.tls.port") == "443")
+
+print("\n-----------------------------\n")
+print("All tests passed!\n\n")