/* vcard_tests
Author: Giménez, Christian.
Copyright (C) 2018 Giménez, Christian
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see .
13 may 2018
*/
:- module(vcard_tests, [
]).
/** vcard_tests:
*/
:- license(gplv3).
:- use_module('../prolog/vcard').
:- use_module(library(readutil)).
:- begin_tests(vcard, []).
test(vcard) :-
read_file_to_codes('test1.vcf', Codes, []),
vcard(A, Codes, []),
A = vcard(
version(`3.0`),
contents(
[
content([], `FN`, [], `Name`),
content([], `TEL`, [param(`TYPE`, [`cell`])], `0123 456-789`),
content([], `IMPP`, [], `xmpp:myxmpp@host.com`),
content([], `ADR`,[
param(`TYPE`, [`home`]),
param(`LABEL`, [`A label`])],
`;;A value;;;;`),
content([], `BDAY`, [], `19900102`)
])).
test(params) :-
vcard:params([param(`TYPE`, [`work`]), param(`LABEL`, [`My work`])],
`;TYPE=work;LABEL="My work"`, []).
test(contentline) :-
contentline(content([],`FN`, [], `Name`), `FN:Name\r\n`, []).
test(contentline) :-
contentline(content([],
`ADR`,
[param(`TYPE`, [`work`]),
param(`LABEL`, [`My work`])],
`;;geo:-01\\,-02?z=03;;;;`),
`ADR;TYPE=work;LABEL="My work":;;geo:-01\\,-02?z=03;;;;\r\n`,
[]).
test(name) :-
name(`SOURCE`, `SOURCE`, []).
test(name) :-
name(`KIND`, `KIND`, []).
test(name) :-
name(`FN`, `FN`, []).
test(name) :-
name(`N`, `N`, []).
test(name) :-
name(`NICKNAME`, `NICKNAME`, []).
test(name) :-
name(`PHOTO`, `PHOTO`, []).
test(name) :-
name(`BDAY`, `BDAY`, []).
test(name) :-
name(`ANNIVERSARY`, `ANNIVERSARY`, []).
test(name) :-
name(`GENDER`, `GENDER`, []).
test(name) :-
name(`ADR`, `ADR`, []).
test(name) :-
name(`TEL`, `TEL`, []).
test(name) :-
name(`EMAIL`, `EMAIL`, []).
test(name) :-
name(`IMPP`, `IMPP`, []).
test(name) :-
name(`LANG`, `LANG`, []).
test(name) :-
name(`TZ`, `TZ`, []).
test(name) :-
name(`GEO`, `GEO`, []).
test(name) :-
name(`TITLE`, `TITLE`, []).
test(name) :-
name(`ROLE`, `ROLE`, []).
test(name) :-
name(`LOGO`, `LOGO`, []).
test(name) :-
name(`ORG`, `ORG`, []).
test(name) :-
name(`MEMBER`, `MEMBER`, []).
test(name) :-
name(`RELATED`, `RELATED`, []).
test(name) :-
name(`CATEGORIES`, `CATEGORIES`, []).
test(name) :-
name(`NOTE`, `NOTE`, []).
test(name) :-
name(`PRODID`, `PRODID`, []).
test(name) :-
name(`REV`, `REV`, []).
test(name) :-
name(`SOUND`, `SOUND`, []).
test(name) :-
name(`UID`, `UID`, []).
test(name) :-
name(`CLIENTPIDMAP`, `CLIENTPIDMAP`, []).
test(name) :-
name(`URL`, `URL`, []).
test(name) :-
name(`KEY`, `KEY`, []).
test(name) :-
name(`FBURL`, `FBURL`, []).
test(name) :-
name(`CALADRURI`, `CALADRURI`, []).
test(name) :-
name(`CALURI`, `CALURI`, []).
test(name) :-
name(`XML`, `XML`, []).
test(name) :-
name(`X-Name`, `X-Name`,[]).
test(param) :-
param(param(`TYPE`, [`home`]),
`TYPE=home`, []).
test(param) :-
param(param(`LABEL`, [`An address`]),
`LABEL="An address"`, []).
test(iana_token) :-
vcard:iana_token(`test`, `test`, []).
test(iana_token) :-
vcard:iana_token(`test1`, `test1`, []).
test(iana_token) :-
vcard:iana_token(`A-test-10`, `A-test-10`,[]).
test(folded_string) :-
vcard:folded_string(`testing one line`,
`testing one line\r\n`, []).
test(folded_string) :-
vcard:folded_string(
`test and more test`,
`test and\r\n more test\r\n`, []).
%% test(value) :-
%% vcard:value().
:- end_tests(vcard).