234 lines
		
	
	
		
			No EOL
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			234 lines
		
	
	
		
			No EOL
		
	
	
		
			6.8 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| -- Test QB Format Input
 | |
| RegisterCommand('input_test_qb', function()
 | |
|     local qbFormatData = {
 | |
|         inputs = {
 | |
|             {
 | |
|                 text = "Player Name",
 | |
|                 name = "playername",
 | |
|                 type = "text",
 | |
|                 isRequired = true,
 | |
|                 default = "John Doe"
 | |
|             },
 | |
|             {
 | |
|                 text = "Player ID",
 | |
|                 name = "playerid",
 | |
|                 type = "number",
 | |
|                 isRequired = true
 | |
|             },
 | |
|             {
 | |
|                 text = "Password",
 | |
|                 name = "password",
 | |
|                 type = "password",
 | |
|                 isRequired = false
 | |
|             },
 | |
|             {
 | |
|                 text = "Vehicle Type",
 | |
|                 name = "vehicle",
 | |
|                 type = "select",
 | |
|                 isRequired = true,
 | |
|                 options = {
 | |
|                     {value = "car", text = "Car"},
 | |
|                     {value = "bike", text = "Motorcycle"},
 | |
|                     {value = "truck", text = "Truck"}
 | |
|                 }
 | |
|             },
 | |
|             {
 | |
|                 text = "Enable Notifications",
 | |
|                 name = "notifications",
 | |
|                 type = "checkbox",
 | |
|                 isRequired = false,
 | |
|                 options = {
 | |
|                     {value = "email", text = "Email", checked = true},
 | |
|                     {value = "sms", text = "SMS", checked = false}
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     local result = Input.Open("QB Format Test", qbFormatData, true, "Submit")
 | |
|     if result then
 | |
|         print("QB Format Result:")
 | |
|         for k, v in pairs(result) do
 | |
|             print(k .. ": " .. tostring(v))
 | |
|         end
 | |
|     else
 | |
|         print("QB Format: User cancelled or no input")
 | |
|     end
 | |
| end, false)
 | |
| 
 | |
| -- Test Ox Format Input
 | |
| RegisterCommand('input_test_ox', function()
 | |
|     local oxFormatData = {
 | |
|         {
 | |
|             type = "input",
 | |
|             label = "Character Name",
 | |
|             name = "charname",
 | |
|             required = true,
 | |
|             default = "Jane Smith"
 | |
|         },
 | |
|         {
 | |
|             type = "number",
 | |
|             label = "Age",
 | |
|             name = "age",
 | |
|             required = true,
 | |
|             min = 18,
 | |
|             max = 100
 | |
|         },
 | |
|         {
 | |
|             type = "select",
 | |
|             label = "Job Category",
 | |
|             name = "jobcat",
 | |
|             required = true,
 | |
|             options = {
 | |
|                 {value = "civ", label = "Civilian"},
 | |
|                 {value = "leo", label = "Law Enforcement"},
 | |
|                 {value = "ems", label = "Emergency Medical"}
 | |
|             }
 | |
|         },
 | |
|         {
 | |
|             type = "checkbox",
 | |
|             label = "Has License",
 | |
|             name = "license",
 | |
|             required = false
 | |
|         },
 | |
|         {
 | |
|             type = "color",
 | |
|             label = "Favorite Color",
 | |
|             name = "color",
 | |
|             default = "#ff0000"
 | |
|         },
 | |
|         {
 | |
|             type = "date",
 | |
|             label = "Birth Date",
 | |
|             name = "birthdate",
 | |
|             format = "DD/MM/YYYY"
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     local result = Input.Open("Ox Format Test", oxFormatData, false)
 | |
|     if result then
 | |
|         print("Ox Format Result:")
 | |
|         for k, v in pairs(result) do
 | |
|             print(k .. ": " .. tostring(v))
 | |
|         end
 | |
|     else
 | |
|         print("Ox Format: User cancelled or no input")
 | |
|     end
 | |
| end, false)
 | |
| 
 | |
| -- Test Simple Text Input
 | |
| RegisterCommand('input_test_simple', function()
 | |
|     local simpleData = {
 | |
|         inputs = {
 | |
|             {
 | |
|                 text = "Enter your message",
 | |
|                 name = "message",
 | |
|                 type = "text",
 | |
|                 isRequired = true
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     local result = Input.Open("Simple Input", simpleData, true, "Send")
 | |
|     if result then
 | |
|         print("Simple Input Result: " .. (result.message or "No message"))
 | |
|     else
 | |
|         print("Simple Input: Cancelled")
 | |
|     end
 | |
| end, false)
 | |
| 
 | |
| -- Test All Input Types (QB Format)
 | |
| RegisterCommand('input_test_all_types', function()
 | |
|     local allTypesData = {
 | |
|         inputs = {
 | |
|             {
 | |
|                 text = "Text Input",
 | |
|                 name = "text_field",
 | |
|                 type = "text",
 | |
|                 isRequired = false,
 | |
|                 default = "Sample text"
 | |
|             },
 | |
|             {
 | |
|                 text = "Number Input",
 | |
|                 name = "number_field",
 | |
|                 type = "number",
 | |
|                 isRequired = false,
 | |
|                 default = 42
 | |
|             },
 | |
|             {
 | |
|                 text = "Password Input",
 | |
|                 name = "password_field",
 | |
|                 type = "password",
 | |
|                 isRequired = false
 | |
|             },
 | |
|             {
 | |
|                 text = "Radio Selection",
 | |
|                 name = "radio_field",
 | |
|                 type = "radio",
 | |
|                 isRequired = false,
 | |
|                 options = {
 | |
|                     {value = "option1", text = "Option 1"},
 | |
|                     {value = "option2", text = "Option 2"},
 | |
|                     {value = "option3", text = "Option 3"}
 | |
|                 }
 | |
|             },
 | |
|             {
 | |
|                 text = "Checkbox Options",
 | |
|                 name = "checkbox_field",
 | |
|                 type = "checkbox",
 | |
|                 isRequired = false,
 | |
|                 options = {
 | |
|                     {value = "check1", text = "Check 1", checked = true},
 | |
|                     {value = "check2", text = "Check 2", checked = false},
 | |
|                     {value = "check3", text = "Check 3", checked = false}
 | |
|                 }
 | |
|             },
 | |
|             {
 | |
|                 text = "Select Dropdown",
 | |
|                 name = "select_field",
 | |
|                 type = "select",
 | |
|                 isRequired = false,
 | |
|                 options = {
 | |
|                     {value = "val1", text = "Value 1"},
 | |
|                     {value = "val2", text = "Value 2"},
 | |
|                     {value = "val3", text = "Value 3"}
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
|     
 | |
|     local result = Input.Open("All Input Types Test", allTypesData, true, "Test Submit")
 | |
|     if result then
 | |
|         print("All Types Result:", json.encode(result))
 | |
|         
 | |
|     else
 | |
|         print("All Types: User cancelled")
 | |
|     end
 | |
| end, false)
 | |
| 
 | |
| -- Test Error Handling
 | |
| RegisterCommand('input_test_error', function()
 | |
|     -- Test with invalid data
 | |
|     local result = Input.Open("Error Test", nil, true)
 | |
|     if result then
 | |
|         print("Error test unexpectedly succeeded")
 | |
|     else
 | |
|         print("Error test correctly handled nil data")
 | |
|     end
 | |
|     
 | |
|     -- Test with empty inputs
 | |
|     local emptyData = {inputs = {}}
 | |
|     local result2 = Input.Open("Empty Test", emptyData, true)
 | |
|     if result2 then
 | |
|         print("Empty test result: " .. json.encode(result2))
 | |
|     else
 | |
|         print("Empty test: No result")
 | |
|     end
 | |
| end, false)
 | |
| 
 | |
| -- print("Input unit tests loaded. Available commands:")
 | |
| -- print("  /input_test_qb - Test QB format input")
 | |
| -- print("  /input_test_ox - Test Ox format input") 
 | |
| -- print("  /input_test_simple - Test simple text input")
 | |
| -- print("  /input_test_all_types - Test all input types")
 | |
| -- print("  /input_test_error - Test error handling") | 
