| 26 | #include "../../parser/parse_fcaps.h" |
| 27 | |
| 28 | void test_parse_fcaps(void) |
| 29 | { |
| 30 | struct hdr_field hf; |
| 31 | fcaps_body_t *fcaps; |
| 32 | const str *hdr; |
| 33 | |
| 34 | hdr = _str("Feature-Caps: +sip.pns=\"apns\"\r\n"); |
| 35 | memset(&hf, 0, sizeof hf); |
| 36 | get_hdr_field(hdr->s, hdr->s + hdr->len, &hf); |
| 37 | ok(hf.type == HDR_FEATURE_CAPS_T, "fcaps-1"); |
| 38 | ok(str_match(&hf.body, const_str("+sip.pns=\"apns\"")), "fcaps-2"); |
| 39 | |
| 40 | hdr = _str("fEATURE-cAPS:+sip.pns=\"apns\"\r\n"); |
| 41 | memset(&hf, 0, sizeof hf); |
| 42 | get_hdr_field(hdr->s, hdr->s + hdr->len, &hf); |
| 43 | ok(hf.type == HDR_FEATURE_CAPS_T, "fcaps-3"); |
| 44 | ok(str_match(&hf.body, const_str("+sip.pns=\"apns\"")), "fcaps-4"); |
| 45 | |
| 46 | hdr = _str("feature-caps: +sip.pns=\"apns\";+sip.pnsreg=\"130\"\r\n"); |
| 47 | memset(&hf, 0, sizeof hf); |
| 48 | get_hdr_field(hdr->s, hdr->s + hdr->len, &hf); |
| 49 | ok(hf.type == HDR_FEATURE_CAPS_T, "fcaps-5"); |
| 50 | ok(str_match(&hf.body, const_str("+sip.pns=\"apns\";+sip.pnsreg=\"130\"")), "fcaps-6"); |
| 51 | free_fcaps((fcaps_body_t**)&hf.parsed); |
| 52 | ok(!hf.parsed, "fcaps-7"); |
| 53 | |
| 54 | ok(parse_fcaps(&hf) == 0, "fcaps-8"); |
| 55 | fcaps = (fcaps_body_t *)hf.parsed; |
| 56 | ok(str_match(&fcaps->pns, const_str("apns")), "fcaps-9"); |
| 57 | free_fcaps((fcaps_body_t**)&hf.parsed); |
| 58 | |
| 59 | hf.body = *_str(""); |
| 60 | ok(parse_fcaps(&hf) != 0, "fcaps-10"); |
| 61 | |
| 62 | hf.body = *_str("+sip.pns"); |
| 63 | ok(parse_fcaps(&hf) != 0, "fcaps-11"); |
| 64 | |
| 65 | hf.body = *_str("+sip.pns="); |
| 66 | ok(parse_fcaps(&hf) != 0, "fcaps-12"); |
| 67 | |
| 68 | hf.body = *_str("+sip.pns=x"); |
| 69 | ok(parse_fcaps(&hf) != 0, "fcaps-13"); |
| 70 | |
| 71 | hf.body = *_str("+sip.pns=\""); |
| 72 | ok(parse_fcaps(&hf) != 0, "fcaps-14"); |
| 73 | |
| 74 | hf.body = *_str("+sip.pns=\"x"); |
| 75 | ok(parse_fcaps(&hf) != 0, "fcaps-15"); |
| 76 | |
| 77 | hf.body = *_str("+sip.pns=x\""); |
| 78 | ok(parse_fcaps(&hf) != 0, "fcaps-16"); |
| 79 | |
| 80 | hf.body = *_str("+sip.pns=\"x\""); |
| 81 | ok(parse_fcaps(&hf) == 0, "fcaps-17"); |
| 82 | fcaps = (fcaps_body_t *)hf.parsed; |
| 83 | ok(str_match(&fcaps->pns, const_str("x")), "fcaps-18"); |
| 84 | free_fcaps((fcaps_body_t**)&hf.parsed); |
| 85 |
no test coverage detected