Software / code / prosody
Comparison
spec/util_dataforms_spec.lua @ 9121:e5eb36ee07a2
util.dataforms: Allow passing the current values to be used in stead of omitted fields
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Sun, 05 Aug 2018 15:50:06 +0200 |
| parent | 9083:5d3639e415bd |
| child | 9242:68694c1bd960 |
comparison
equal
deleted
inserted
replaced
| 9120:01fc8ba0a7fa | 9121:e5eb36ee07a2 |
|---|---|
| 345 it("includes options when value is excluded", function () | 345 it("includes options when value is excluded", function () |
| 346 local f = form_with_stuff:form({}); | 346 local f = form_with_stuff:form({}); |
| 347 assert.truthy(f:find("field/option")); | 347 assert.truthy(f:find("field/option")); |
| 348 end); | 348 end); |
| 349 end); | 349 end); |
| 350 | |
| 351 describe("using current values in place of missing fields", function () | |
| 352 it("gets back the previous values when given an empty form", function () | |
| 353 local current = { | |
| 354 ["list-multi-field"] = { | |
| 355 "list-multi-option-value#2"; | |
| 356 }; | |
| 357 ["list-single-field"] = "list-single-value#2"; | |
| 358 ["hidden-field"] = "hidden-value"; | |
| 359 ["boolean-field"] = false; | |
| 360 ["text-multi-field"] = "words\ngo\nhere"; | |
| 361 ["jid-single-field"] = "alice@example.com"; | |
| 362 ["text-private-field"] = "hunter2"; | |
| 363 ["text-single-field"] = "text-single-value"; | |
| 364 ["jid-multi-field"] = { | |
| 365 "bob@example.net"; | |
| 366 }; | |
| 367 }; | |
| 368 local expect = { | |
| 369 -- FORM_TYPE = "xmpp:prosody.im/spec/util.dataforms#1"; -- does this need to be included? | |
| 370 ["list-multi-field"] = { | |
| 371 "list-multi-option-value#2"; | |
| 372 }; | |
| 373 ["list-single-field"] = "list-single-value#2"; | |
| 374 ["hidden-field"] = "hidden-value"; | |
| 375 ["boolean-field"] = false; | |
| 376 ["text-multi-field"] = "words\ngo\nhere"; | |
| 377 ["jid-single-field"] = "alice@example.com"; | |
| 378 ["text-private-field"] = "hunter2"; | |
| 379 ["text-single-field"] = "text-single-value"; | |
| 380 ["jid-multi-field"] = { | |
| 381 "bob@example.net"; | |
| 382 }; | |
| 383 }; | |
| 384 local data, err = some_form:data(st.stanza("x", {xmlns="jabber:x:data"}), current); | |
| 385 assert.is.table(data, err); | |
| 386 assert.same(expect, data, "got back the same data"); | |
| 387 end); | |
| 388 end); | |
| 350 end); | 389 end); |
| 351 | 390 |