diff options
Diffstat (limited to 'lib/xmerl/test/xmerl_SUITE.erl')
-rw-r--r-- | lib/xmerl/test/xmerl_SUITE.erl | 643 |
1 files changed, 312 insertions, 331 deletions
diff --git a/lib/xmerl/test/xmerl_SUITE.erl b/lib/xmerl/test/xmerl_SUITE.erl index 7ddf1066de..e7e3b3c2b1 100644 --- a/lib/xmerl/test/xmerl_SUITE.erl +++ b/lib/xmerl/test/xmerl_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2008-2013. All Rights Reserved. +%% Copyright Ericsson AB 2008-2017. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -27,7 +27,7 @@ %%---------------------------------------------------------------------- %% Include files %%---------------------------------------------------------------------- --include_lib("test_server/include/test_server.hrl"). +-include_lib("common_test/include/ct.hrl"). %%-include("xmerl.hrl"). -include_lib("xmerl/include/xmerl.hrl"). -include_lib("kernel/include/file.hrl"). @@ -54,7 +54,8 @@ groups() -> cpd_expl_provided_DTD]}, {misc, [], [latin1_alias, syntax_bug1, syntax_bug2, syntax_bug3, - pe_ref1, copyright, testXSEIF, export_simple1, export]}, + pe_ref1, copyright, testXSEIF, export_simple1, export, + default_attrs_bug, xml_ns]}, {eventp_tests, [], [sax_parse_and_export]}, {ticket_tests, [], [ticket_5998, ticket_7211, ticket_7214, ticket_7430, @@ -63,276 +64,282 @@ groups() -> {app_test, [], [{xmerl_app_test, all}]}, {appup_test, [], [{xmerl_appup_test, all}]}]. -init_per_group(_GroupName, Config) -> - Config. - -end_per_group(_GroupName, Config) -> - Config. +suite() -> + [{timetrap,{minutes,10}}]. %%---------------------------------------------------------------------- %% Initializations %%---------------------------------------------------------------------- -init_per_suite(doc) -> - ["Starts the test suite"]; + init_per_suite(Config) -> - Dog=test_server:timetrap({minutes,10}), - ?line file:set_cwd(?config(data_dir,Config)), - ?line ok=erl_tar:extract("cpd.tar.gz",[compressed]), - ?line ok=erl_tar:extract("misc.tar.gz",[compressed]), - ?line ok = change_mode(["cpd", "misc"]), - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), + file:set_cwd(datadir(Config)), + ok=erl_tar:extract("cpd.tar.gz",[compressed]), + ok=erl_tar:extract("misc.tar.gz",[compressed]), + ok = change_mode(["cpd", "misc"]), + file:set_cwd(filename:join(datadir(Config),xpath)), TestServerIncludeDir=filename:join(filename:dirname(code:priv_dir(test_server)), "include"), - ?line {ok, xpath_lib} = compile:file(xpath_lib, [{i, TestServerIncludeDir}]), - ?line {ok, xpath_text} = compile:file(xpath_text, [{i, TestServerIncludeDir}]), - ?line {ok, xpath_abbrev} = compile:file(xpath_abbrev, [{i, TestServerIncludeDir}]), - [{watchdog, Dog}|Config]. + {ok, xpath_lib} = compile:file(xpath_lib, [{i, TestServerIncludeDir}]), + {ok, xpath_text} = compile:file(xpath_text, [{i, TestServerIncludeDir}]), + {ok, xpath_abbrev} = compile:file(xpath_abbrev, [{i, TestServerIncludeDir}]), + Config. -ifndef(dont_rm_test_dirs). -end_per_suite(doc) -> - ["Stops the test suite"]; end_per_suite(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line ok=rm_files(["cpd", "misc"]), - Dog=?config(watchdog, Config), - test_server:timetrap_cancel(Dog), - lists:keydelete(watchdog,1,Config). + file:set_cwd(datadir(Config)), + ok = rm_files(["cpd", "misc"]), + ok. -else. -end_per_suite(doc) -> - ["Stops the test suite"]; -end_per_suite(Config) -> - Dog=?config(watchdog, Config), - test_server:timetrap_cancel(Dog), - lists:keydelete(watchdog,1,Config). +end_per_suite(_Config) -> + ok. -endif. %% initialization before each testcase init_per_testcase(_TestCase,Config) -> io:format("Config:~n~p",[Config]), - ?line {ok, _} = file:read_file_info(filename:join([?config(priv_dir,Config)])), - ?line code:add_patha(?config(priv_dir,Config)), - Dog=test_server:timetrap({minutes,10}), - [{watchdog, Dog}|Config]. + {ok, _} = file:read_file_info(filename:join([privdir(Config)])), + code:add_patha(privdir(Config)), + Config. %% clean up after each testcase -end_per_testcase(_Func,Config) -> - Dog=?config(watchdog, Config), - test_server:timetrap_cancel(Dog), +end_per_testcase(_Func,_Config) -> ok. %%---------------------------------------------------------------------- %% Test cases %%---------------------------------------------------------------------- -cpd_invalid1(suite) -> []; cpd_invalid1(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line case catch xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"cpd_test.xml"]),[]) of - {'EXIT',{fatal,Reason}} -> - case Reason of - {expected_markup,_Path,28,32} -> ok; - _ -> {comment,"parsing changed behaviour"} - end - end. - -cpd_invalid1_index(suite) -> []; + file:set_cwd(datadir(Config)), + case catch xmerl_scan:file(datadir_join(Config,[cpd,"cpd_test.xml"]),[]) of + {'EXIT',{fatal,Reason}} -> + case Reason of + {expected_markup,_Path,28,32} -> ok; + _ -> {comment,"parsing changed behaviour"} + end + end. + cpd_invalid1_index(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line case catch xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"cpd_index.xml"]),[]) of - {'EXIT',{fatal,Reason}} -> - case Reason of - {{error,{whitespace_was_expected}},_Path,1,19} -> ok; - _ -> {comment,"parsing changed behaviour"} - end - end. - -cpd_invalid2_index(suite) -> []; + file:set_cwd(datadir(Config)), + case catch xmerl_scan:file(datadir_join(Config,[cpd,"cpd_index.xml"]),[]) of + {'EXIT',{fatal,Reason}} -> + case Reason of + {{error,{whitespace_was_expected}},_Path,1,19} -> ok; + _ -> {comment,"parsing changed behaviour"} + end + end. + cpd_invalid2_index(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line case catch xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"cpd_index2.xml"]),[]) of - {'EXIT',{fatal,Reason}} -> - case Reason of - {{invalid_target_name,_Ver},_Path,2,3} ->ok; - _ -> {comment,"parsing changed behaviour"} - end - end. - -cpd_invalid_index3(suite) -> []; + file:set_cwd(datadir(Config)), + case catch xmerl_scan:file(datadir_join(Config,[cpd,"cpd_index2.xml"]),[]) of + {'EXIT',{fatal,Reason}} -> + case Reason of + {{invalid_target_name,_Ver},_Path,2,3} ->ok; + _ -> {comment,"parsing changed behaviour"} + end + end. + cpd_invalid_index3(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line case catch xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"cpd_index3.xml"]),[]) of - {'EXIT',{fatal,Reason}} -> - case Reason of - {expected_markup,_Path,1,2} -> ok; - _ -> {comment,"parsing changed behaviour"} - end - end. - -cpd_invalid_is_layer(suite) -> []; + file:set_cwd(datadir(Config)), + case catch xmerl_scan:file(datadir_join(Config,[cpd,"cpd_index3.xml"]),[]) of + {'EXIT',{fatal,Reason}} -> + case Reason of + {expected_markup,_Path,1,2} -> ok; + _ -> {comment,"parsing changed behaviour"} + end + end. + cpd_invalid_is_layer(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line case catch xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"is_layer2.xml"]),[]) of - {'EXIT',{fatal,_Reason}} -> ok - end. + file:set_cwd(datadir(Config)), + case catch xmerl_scan:file(datadir_join(Config,[cpd,"is_layer2.xml"]),[]) of + {'EXIT',{fatal,_Reason}} -> ok + end. -cpd_expl_provided_DTD(suite) -> []; cpd_expl_provided_DTD(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {#xmlElement{},[]} = xmerl_scan:file(filename:join([?config(data_dir,Config), cpd,"file_wo_DTD.xml"]),[{validation,true},{doctype_DTD,"separate_DTD.dtd"}]). + file:set_cwd(datadir(Config)), + {#xmlElement{},[]} = xmerl_scan:file(datadir_join(Config,[cpd,"file_wo_DTD.xml"]), + [{validation,true},{doctype_DTD,"separate_DTD.dtd"}]). %%---------------------------------------------------------------------- -xpath_text1(suite) -> []; xpath_text1(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_text:one(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_text:one(). -xpath_main(suite) -> []; xpath_main(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_lib:test(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_lib:test(). -xpath_abbreviated_syntax(suite) -> []; xpath_abbreviated_syntax(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_abbrev:test(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_abbrev:test(). -xpath_functions(suite) -> []; xpath_functions(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_abbrev:functions(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_abbrev:functions(). -xpath_namespaces(suite) -> []; xpath_namespaces(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_abbrev:namespaces(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_abbrev:namespaces(). %%---------------------------------------------------------------------- -latin1_alias(suite) -> []; latin1_alias(Config) -> -% ?line file:set_cwd(filename:join(?config(data_dir,Config),misc)), - ?line file:set_cwd(?config(data_dir,Config)), - ?line {_Elements,[]}= - xmerl_scan:file(filename:join([?config(data_dir,Config), - misc,"motorcycles.xml"]), - [{validation,true}, - {encoding,'iso-8859-1'}]). - -syntax_bug1(suite) -> []; +% file:set_cwd(filename:join(datadir(Config),misc)), + file:set_cwd(datadir(Config)), + {_Elements,[]} = xmerl_scan:file(datadir_join(Config,[misc,"motorcycles.xml"]), + [{validation,true}, + {encoding,'iso-8859-1'}]). + syntax_bug1(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {fatal,{"expected one of: ?>, standalone, encoding", - {file,'misc/syntax_bug1.xml'},{line,1},{col,21}}} = - case catch xmerl_scan:file('misc/syntax_bug1.xml') of - {'EXIT',Reason} -> - Reason; - Err -> Err - end. - -syntax_bug2(suite) -> []; + file:set_cwd(datadir(Config)), + {fatal,{"expected one of: ?>, standalone, encoding", + {file,'misc/syntax_bug1.xml'},{line,1},{col,21}} + } = case catch xmerl_scan:file('misc/syntax_bug1.xml') of + {'EXIT',Reason} -> + Reason; + Err -> Err + end. + syntax_bug2(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {fatal,{"expected one of: ?>, whitespace_character", - {file,'misc/syntax_bug2.xml'},{line,1},{col,20}}} = - case catch xmerl_scan:file('misc/syntax_bug2.xml') of - {'EXIT',Reason} -> - Reason; - Err -> Err - end. - -syntax_bug3(suite) -> []; + file:set_cwd(datadir(Config)), + {fatal,{"expected one of: ?>, whitespace_character", + {file,'misc/syntax_bug2.xml'},{line,1},{col,20}} + } = case catch xmerl_scan:file('misc/syntax_bug2.xml') of + {'EXIT',Reason} -> + Reason; + Err -> Err + end. + syntax_bug3(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {fatal,{{endtag_does_not_match,{was,obj,should_have_been,int}}, - {file,'misc/syntax_bug3.xml'},{line,4},{col,3}}} = - case catch xmerl_scan:file('misc/syntax_bug3.xml') of - {'EXIT',Reason} -> - Reason; - Err -> Err - end. - -pe_ref1(suite) -> []; + file:set_cwd(datadir(Config)), + {fatal,{{endtag_does_not_match,{was,obj,should_have_been,int}}, + {file,'misc/syntax_bug3.xml'},{line,4},{col,3}} + } = case catch xmerl_scan:file('misc/syntax_bug3.xml') of + {'EXIT',Reason} -> + Reason; + Err -> Err + end. + +default_attrs_bug(Config) -> + file:set_cwd(datadir(Config)), + Doc = "<!DOCTYPE doc [<!ATTLIST doc b CDATA \"default\">]>\n" + "<doc a=\"explicit\"/>", + {#xmlElement{attributes = [#xmlAttribute{name = a, value = "explicit"}, + #xmlAttribute{name = b, value = "default"}]}, + [] + } = xmerl_scan:string(Doc, [{default_attrs, true}]), + Doc2 = "<!DOCTYPE doc [<!ATTLIST doc b CDATA \"default\">]>\n" + "<doc b=\"also explicit\" a=\"explicit\"/>", + {#xmlElement{attributes = [#xmlAttribute{name = b, value = "also explicit"}, + #xmlAttribute{name = a, value = "explicit"}]}, + [] + } = xmerl_scan:string(Doc2, [{default_attrs, true}]), + ok. + + +xml_ns(Config) -> + Doc = "<?xml version='1.0'?>\n" + "<doc xml:attr1=\"implicit xml ns\"/>", + {#xmlElement{namespace=#xmlNamespace{default = [], nodes = []}, + attributes = [#xmlAttribute{name = 'xml:attr1', + expanded_name = {'http://www.w3.org/XML/1998/namespace',attr1}, + nsinfo = {"xml","attr1"}, + namespace = #xmlNamespace{default = [], nodes = []}}]}, + [] + } = xmerl_scan:string(Doc, [{namespace_conformant, true}]), + Doc2 = "<?xml version='1.0'?>\n" + "<doc xmlns:xml=\"http://www.w3.org/XML/1998/namespace\" xml:attr1=\"explicit xml ns\"/>", + {#xmlElement{namespace=#xmlNamespace{default = [], nodes = [{"xml",'http://www.w3.org/XML/1998/namespace'}]}, + attributes = [#xmlAttribute{name = 'xmlns:xml', + expanded_name = {"xmlns","xml"}, + nsinfo = {"xmlns","xml"}, + namespace = #xmlNamespace{default = [], + nodes = [{"xml",'http://www.w3.org/XML/1998/namespace'}]}}, + #xmlAttribute{name = 'xml:attr1', + expanded_name = {'http://www.w3.org/XML/1998/namespace',attr1}, + nsinfo = {"xml","attr1"}, + namespace = #xmlNamespace{default = [], + nodes = [{"xml",'http://www.w3.org/XML/1998/namespace'}]}}]}, + [] + } = xmerl_scan:string(Doc2, [{namespace_conformant, true}]), + ok. + pe_ref1(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {#xmlElement{},[]} = xmerl_scan:file(filename:join([?config(data_dir,Config), misc,"PE_ref1.xml"]),[{validation,true}]). + file:set_cwd(datadir(Config)), + {#xmlElement{},[]} = xmerl_scan:file(datadir_join(Config,[misc,"PE_ref1.xml"]),[{validation,true}]). -copyright(suite) -> []; copyright(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {#xmlElement{},[]} = xmerl_scan:file(filename:join([?config(data_dir,Config), misc,"cprght.xml"]),[{validation,true}]). + file:set_cwd(datadir(Config)), + {#xmlElement{},[]} = xmerl_scan:file(datadir_join(Config,[misc,"cprght.xml"]),[{validation,true}]). -testXSEIF(suite) -> []; testXSEIF(Config) -> - ?line file:set_cwd(?config(data_dir,Config)), - ?line {#xmlElement{},[]} = xmerl_scan:file(filename:join([?config(data_dir,Config), misc,"ReplBoard_1_1543-CNA11313Uen.xml"]),[{validation,true}]). + file:set_cwd(datadir(Config)), + {#xmlElement{},[]} = xmerl_scan:file(datadir_join(Config,[misc,"ReplBoard_1_1543-CNA11313Uen.xml"]),[{validation,true}]). -export_simple1(suite) -> []; -export_simple1(Config) -> +export_simple1(_Config) -> Simple = simple(), Res = xmerl:export_simple(Simple,xmerl_xml,[{title, "Doc Title"}]), - ?line "<?xml version="++_ = lists:flatten(Res), + "<?xml version="++_ = lists:flatten(Res), %% Use of fun in simple content OTP-6679 Simple2 = simple2(), Res2 = xmerl:export_simple(Simple2,xmerl_xml,[{title,"Doc Title"}]), - ?line true = (Res2 =:= Res), + true = (Res2 =:= Res), ok. -export(suite) -> []; export(Config) -> - DataDir = ?config(data_dir,Config), + DataDir = datadir(Config), Prolog = ["<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<!DOCTYPE motorcycles SYSTEM \"motorcycles.dtd\">\n"], TestFile = filename:join([DataDir,"misc","motorcycles.xml"]), - ?line {E,_} = xmerl_scan:file(TestFile), - ?line Exported = xmerl:export([E],xmerl_xml,[{prolog,Prolog}]), + {E,_} = xmerl_scan:file(TestFile), + Exported = xmerl:export([E],xmerl_xml,[{prolog,Prolog}]), B = list_to_binary(Exported++"\n"), - ?line {ok, B} = file:read_file(TestFile), + {ok, B} = file:read_file(TestFile), ok. %%---------------------------------------------------------------------- -sax_parse_and_export(suite) -> []; sax_parse_and_export(Config) -> - ?line ok = sax_parse_export_xml_big(Config), - ?line ok = sax_parse_export_xml_small(Config). + ok = sax_parse_export_xml_big(Config), + ok = sax_parse_export_xml_small(Config). %%---------------------------------------------------------------------- sax_parse_export_xml_big(Config) -> - DataDir = ?config(data_dir,Config), - OutDir = ?config(priv_dir,Config), + DataDir = datadir(Config), + OutDir = privdir(Config), io:format("DataDir: ~p~n,OutDir:~p~n",[DataDir,OutDir]), CMOMxml = filename:join([DataDir,"eventp","CMOM.xml"]), - ?line {Ex,[]} = xmerl_eventp:file_sax(CMOMxml, xmerl_xml,[],[]), + {Ex,[]} = xmerl_eventp:file_sax(CMOMxml, xmerl_xml,[],[]), OutFile = filename:join([OutDir,"cmom"]), file:delete(OutFile), StubFile = filename:join([DataDir,"eventp","CelloMOM.stub"]), - ?line {ok,Bin} = file:read_file(StubFile), - ?line {ok,IO} = file:open(OutFile,[write,append]), - ?line ok = file:write(IO,Bin), - ?line ok = io:format(IO,"~s~n~n",[lists:flatten(Ex)]), + {ok,Bin} = file:read_file(StubFile), + {ok,IO} = file:open(OutFile,[write,append]), + ok = file:write(IO,Bin), + ok = io:format(IO,"~s~n~n",[lists:flatten(Ex)]), Cmd = lists:flatten(io_lib:format("cmp ~s ~s",[OutFile,CMOMxml])), - ?line [] = os:cmd(Cmd), + [] = os:cmd(Cmd), ok. sax_parse_export_xml_small(Config) -> - DataDir = ?config(data_dir,Config), - OutDir = ?config(priv_dir,Config), + DataDir = datadir(Config), + OutDir = privdir(Config), Wurfl_xml = filename:join([DataDir,"eventp","wurfl.xml"]), - ?line {Ex,[]} = xmerl_eventp:file_sax(Wurfl_xml, xmerl_xml,[],[]), + {Ex,[]} = xmerl_eventp:file_sax(Wurfl_xml, xmerl_xml,[],[]), OutFile = filename:join([OutDir,"wrfl"]), file:delete(OutFile), StubFile = filename:join([DataDir,"eventp","wurfl.stub"]), - ?line {ok,Bin} = file:read_file(StubFile), - ?line {ok,IO} = file:open(OutFile,[write,append]), - ?line ok = file:write(IO,Bin), - ?line ok = io:format(IO,"~s~n",[lists:flatten(Ex)]), + {ok,Bin} = file:read_file(StubFile), + {ok,IO} = file:open(OutFile,[write,append]), + ok = file:write(IO,Bin), + ok = io:format(IO,"~s~n",[lists:flatten(Ex)]), Cmd = lists:flatten(io_lib:format("cmp ~s ~s",[OutFile,Wurfl_xml])), - ?line [] = os:cmd(Cmd), + [] = os:cmd(Cmd), ok. @@ -435,31 +442,28 @@ generate_heading_col(N) -> %% A Kleene Closure child in a sequence consumed all following %% childs. This problem has been fixed. %% -ticket_5998(suite) -> []; ticket_5998(Config) -> - DataDir = ?config(data_dir,Config), + DataDir = datadir(Config), %% First fix is tested by case syntax_bug2. - ?line case catch xmerl_scan:file(filename:join([DataDir,misc, - "ticket_5998_2.xml"])) of - {'EXIT',{fatal,Reason1}} -> - case Reason1 of - {{endtag_does_not_match, - {was,obj,should_have_been,int}}, - _,_,_} -> ok; - _ -> {comment,"parsing changed behaviour"} - end - end, - - ?line case catch xmerl_scan:file(filename:join([DataDir,misc, - "ticket_5998_3.xml"])) of - {'EXIT',{fatal,Reason2}} -> - case Reason2 of - {"expected one of: ?>, standalone, encoding", - _,_,_} -> ok; - _ -> {comment,"parsing changed behaviour"} - end - end. + case catch xmerl_scan:file(filename:join([DataDir,misc,"ticket_5998_2.xml"])) of + {'EXIT',{fatal,Reason1}} -> + case Reason1 of + {{endtag_does_not_match, + {was,obj,should_have_been,int}}, + _,_,_} -> ok; + _ -> {comment,"parsing changed behaviour"} + end + end, + + case catch xmerl_scan:file(filename:join([DataDir,misc,"ticket_5998_3.xml"])) of + {'EXIT',{fatal,Reason2}} -> + case Reason2 of + {"expected one of: ?>, standalone, encoding", + _,_,_} -> ok; + _ -> {comment,"parsing changed behaviour"} + end + end. %% @@ -468,32 +472,29 @@ ticket_5998(Config) -> %% A Kleene Closure child in a sequence consumed all following %% childs. This problem has been fixed. %% -ticket_7211(suite) -> []; ticket_7211(Config) -> - DataDir = ?config(data_dir,Config), - ?line {E,[]} = - xmerl_scan:file(filename:join([DataDir,misc,"notes2.xml"]), - [{fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}, - {validation,dtd}]), + DataDir = datadir(Config), + {E,[]} = xmerl_scan:file(filename:join([DataDir,misc,"notes2.xml"]), + [{fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}, + {validation,dtd}]), - ?line ok = case E of - Rec when is_record(Rec,xmlElement) -> - ok; - _ -> - E - end, + ok = case E of + Rec when is_record(Rec,xmlElement) -> + ok; + _ -> + E + end, - ?line {E2,[]} = - xmerl_scan:file(filename:join([DataDir,misc,"XS.xml"]), - [{fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}, - {validation,dtd}]), + {E2,[]} = xmerl_scan:file(filename:join([DataDir,misc,"XS.xml"]), + [{fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}, + {validation,dtd}]), - ?line ok = case E2 of - Rec2 when is_record(Rec2,xmlElement) -> - ok; - _ -> - E2 - end. + ok = case E2 of + Rec2 when is_record(Rec2,xmlElement) -> + ok; + _ -> + E2 + end. %% %% ticket_7214 @@ -503,21 +504,19 @@ ticket_7211(Config) -> %% all content, followed by other child elements caused a %% failure. This is now corrected. %% -ticket_7214(suite) -> []; ticket_7214(Config) -> - DataDir = ?config(data_dir,Config), + DataDir = datadir(Config), - ?line {E,[]} = - xmerl_scan:file(filename:join([DataDir,misc,'block_tags.html']), - [{validation,dtd}, - {fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}]), + {E,[]} = xmerl_scan:file(filename:join([DataDir,misc,'block_tags.html']), + [{validation,dtd}, + {fetch_path,[filename:join([DataDir,misc,erlang_docs_dtd])]}]), - ?line ok = case E of - Rec when is_record(Rec,xmlElement) -> - ok; - _ -> - E - end. + ok = case E of + Rec when is_record(Rec,xmlElement) -> + ok; + _ -> + E + end. %% %% ticket_7430 @@ -525,81 +524,67 @@ ticket_7214(Config) -> %% Problem with contents of numeric character references followed by %% UTF-8 characters.. %% -ticket_7430(suite) -> []; ticket_7430(Config) -> - DataDir = ?config(data_dir,Config), - - ?line {E,[]} = - xmerl_scan:string("<a>\303\251
\303\251</a>", - [{encoding, 'utf-8'}]), - - ?line ok = case E of - {xmlElement,a,a,[], - {xmlNamespace,[],[]}, - [],1,[], - [{xmlText,[{a,1}],1,[],"é",text}, - {xmlText,[{a,1}],2,[],"\né",text}], - [],_,undeclared} -> - ok; - _ -> - E - end. - -ticket_6873(suite) -> []; + DataDir = datadir(Config), + + {E,[]} = xmerl_scan:string("<a>\303\251
\303\251</a>",[{encoding,'utf-8'}]), + + ok = case E of + {xmlElement,a,a,[], + {xmlNamespace,[],[]}, + [],1,[], + [{xmlText,[{a,1}],1,[],"é",text}, + {xmlText,[{a,1}],2,[],"\né",text}], + [],_,undeclared} -> + ok; + _ -> + E + end. + ticket_6873(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_abbrev:ticket_6873(), - ?line ok = xpath_lib:ticket_6873(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_abbrev:ticket_6873(), + ok = xpath_lib:ticket_6873(). -ticket_7496(suite) -> []; ticket_7496(Config) -> - ?line file:set_cwd(filename:join(?config(data_dir,Config),xpath)), - ?line ok = xpath_abbrev:ticket_7496(). + file:set_cwd(filename:join(datadir(Config),xpath)), + ok = xpath_abbrev:ticket_7496(). -ticket_8156(suite) -> []; ticket_8156(Config) -> - ?line {ftp,{[],[]},"testmachine1",21,"/w.erl"} = xmerl_uri:parse("ftp://testmachine1/w.erl"), - ?line {ftp,{"user",[]},"testmachine1",21,"/w.erl"} = xmerl_uri:parse("ftp://user@testmachine1/w.erl"), - ?line {ftp,{"user","hello"},"testmachine1",21,"/w.erl"} = - xmerl_uri:parse("ftp://user:hello@testmachine1/w.erl"), - ?line {ftp,{[],[]},"testmachine1",3000,"/w.erl"} = xmerl_uri:parse("ftp://testmachine1:3000/w.erl"), - ?line {ftp,{"user","hello"},"testmachine1",3000,"/w.erl"} = - xmerl_uri:parse("ftp://user:hello@testmachine1:3000/w.erl"), + {ftp,{[],[]},"testmachine1",21,"/w.erl"} = xmerl_uri:parse("ftp://testmachine1/w.erl"), + {ftp,{"user",[]},"testmachine1",21,"/w.erl"} = xmerl_uri:parse("ftp://user@testmachine1/w.erl"), + {ftp,{"user","hello"},"testmachine1",21,"/w.erl"} = xmerl_uri:parse("ftp://user:hello@testmachine1/w.erl"), + {ftp,{[],[]},"testmachine1",3000,"/w.erl"} = xmerl_uri:parse("ftp://testmachine1:3000/w.erl"), + {ftp,{"user","hello"},"testmachine1",3000,"/w.erl"} = xmerl_uri:parse("ftp://user:hello@testmachine1:3000/w.erl"), ok. -ticket_8697(suite) -> []; -ticket_8697(doc) -> - ["Test that xmerl_scan can decode unicode entities properly"]; +%% Test that xmerl_scan can decode unicode entities properly ticket_8697(Config) -> - ?line {UTF8Output, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>" ++ [229, 145, 156] ++ "</text>"), - ?line #xmlElement{content = [#xmlText{value = UTF8Text}]} = UTF8Output, - ?line [16#545C] = UTF8Text, - ?line {DecEntityOutput, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>呜</text>"), - ?line #xmlElement{content = [#xmlText{value = DecEntityText}]} = DecEntityOutput, - ?line [21596] = DecEntityText, - ?line {HexEntityOutput, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>呜</text>"), - ?line #xmlElement{content = [#xmlText{value = HexEntityText}]} = HexEntityOutput, - ?line [16#545C] = HexEntityText, + {UTF8Output, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>" ++ [229, 145, 156] ++ "</text>"), + #xmlElement{content = [#xmlText{value = UTF8Text}]} = UTF8Output, + [16#545C] = UTF8Text, + {DecEntityOutput, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>呜</text>"), + #xmlElement{content = [#xmlText{value = DecEntityText}]} = DecEntityOutput, + [21596] = DecEntityText, + {HexEntityOutput, []} = xmerl_scan:string("<?xml version=\"1\" ?>\n<text>呜</text>"), + #xmlElement{content = [#xmlText{value = HexEntityText}]} = HexEntityOutput, + [16#545C] = HexEntityText, ok. -ticket_9411(suite) -> []; -ticket_9411(doc) -> - ["Test that xmerl_scan handles attribute that contains for example ""]; +%% Test that xmerl_scan handles attribute that contains for example " ticket_9411(Config) -> - DataDir = ?config(data_dir,Config), + DataDir = datadir(Config), - ?line {ok, Schema} = xmerl_xsd:process_schema(filename:join([DataDir,"misc/ticket_9411.xsd"])), - ?line {ok, Bin} = file:read_file(filename:join([DataDir,"misc/ticket_9411.xml"])), - ?line Xml = erlang:binary_to_list(Bin), - ?line {E, _} = xmerl_scan:string(Xml), - ?line {E, _} = xmerl_xsd:validate(E, Schema). + {ok, Schema} = xmerl_xsd:process_schema(filename:join([DataDir,"misc/ticket_9411.xsd"])), + {ok, Bin} = file:read_file(filename:join([DataDir,"misc/ticket_9411.xml"])), + Xml = erlang:binary_to_list(Bin), + {E, _} = xmerl_scan:string(Xml), + {E, _} = xmerl_xsd:validate(E, Schema). -ticket_9457(suite) -> []; -ticket_9457(doc) -> - ["Test that xmerl_scan handles continuation correct when current input runs out at the end of an attribute value"]; +%% Test that xmerl_scan handles continuation correct when current input runs out at the end of an attribute value ticket_9457(Config) -> Opts = [{continuation_fun, fun ticket_9457_cont/3, start}, {space, normalize}], - ?line {E, _} = xmerl_scan:string([], Opts). + {E, _} = xmerl_scan:string([], Opts). ticket_9457_cont(Continue, Exception, GlobalState) -> case xmerl_scan:cont_state(GlobalState) of @@ -616,34 +601,23 @@ ticket_9457_cont(Continue, Exception, GlobalState) -> end. -ticket_9664_schema(suite) -> []; -ticket_9664_schema(doc) -> - ["Test that comments are handled correct whith"]; +%% Test that comments are handled correct whith ticket_9664_schema(Config) -> + {E, _} = xmerl_scan:file(datadir_join(Config,[misc,"ticket_9664_schema.xml"]),[]), + {ok, S} = xmerl_xsd:process_schema(datadir_join(Config,[misc,"motorcycles.xsd"])), + {E1, _} = xmerl_xsd:validate(E, S), - ?line {E, _} = xmerl_scan:file(filename:join([?config(data_dir, Config), misc, - "ticket_9664_schema.xml"]),[]), - ?line {ok, S} = xmerl_xsd:process_schema(filename:join([?config(data_dir, Config), misc, - "motorcycles.xsd"])), - ?line {E1, _} = xmerl_xsd:validate(E, S), + {E1,_} = xmerl_xsd:process_validate(datadir_join(Config,[misc,"motorcycles.xsd"]),E,[]), - ?line {E1,_} = xmerl_xsd:process_validate(filename:join([?config(data_dir,Config), misc, - "motorcycles.xsd"]),E,[]), - - ?line {E1,_} = xmerl_scan:file(filename:join([?config(data_dir,Config), misc, - "ticket_9664_schema.xml"]), - [{schemaLocation, [{"mc", "motorcycles.xsd"}]}, - {validation, schema}]), + {E1,_} = xmerl_scan:file(datadir_join(Config,[misc,"ticket_9664_schema.xml"]), + [{schemaLocation, [{"mc", "motorcycles.xsd"}]}, + {validation, schema}]), ok. -ticket_9664_dtd(suite) -> []; -ticket_9664_dtd(doc) -> - ["Test that comments are handled correct whith"]; +%% Test that comments are handled correct whith ticket_9664_dtd(Config) -> - ?line {E, _} = xmerl_scan:file(filename:join([?config(data_dir, Config), misc, - "ticket_9664_dtd.xml"]),[]), - ?line {E, _} = xmerl_scan:file(filename:join([?config(data_dir, Config), misc, - "ticket_9664_dtd.xml"]),[{validation, true}]), + {E, _} = xmerl_scan:file(datadir_join(Config,[misc,"ticket_9664_dtd.xml"]),[]), + {E, _} = xmerl_scan:file(datadir_join(Config,[misc,"ticket_9664_dtd.xml"]),[{validation, true}]), ok. @@ -653,11 +627,11 @@ ticket_9664_dtd(Config) -> %% Dir is a directory rm_f_(Dir) -> - ?line {ok,CWD} = file:get_cwd(), - ?line {ok,FileList} = file:list_dir(Dir), - ?line file:set_cwd(filename:join([CWD,Dir])), + {ok,CWD} = file:get_cwd(), + {ok,FileList} = file:list_dir(Dir), + file:set_cwd(filename:join([CWD,Dir])), rm_files(FileList), - ?line file:set_cwd(CWD), + file:set_cwd(CWD), ? line ok = file:del_dir(Dir). rm_files([])-> @@ -667,27 +641,27 @@ rm_files([F|Fs]) -> true -> rm_f_(F); _ -> - ?line ok = file:delete(F) + ok = file:delete(F) end, rm_files(Fs). change_mode(Files) -> change_mode3(Files). change_mode2(Dir)-> - ?line {ok,CWD} = file:get_cwd(), - ?line {ok,FileList} = file:list_dir(Dir), - ?line file:set_cwd(filename:join([CWD,Dir])), + {ok,CWD} = file:get_cwd(), + {ok,FileList} = file:list_dir(Dir), + file:set_cwd(filename:join([CWD,Dir])), change_mode3(FileList), - ?line file:set_cwd(CWD). + file:set_cwd(CWD). change_mode3([]) -> ok; change_mode3([F|Fs]) -> case filelib:is_dir(F) of - true -> - chmod(F), - change_mode2(F); - _ -> - chmod(F) + true -> + chmod(F), + change_mode2(F); + _ -> + chmod(F) end, change_mode3(Fs). @@ -699,4 +673,11 @@ chmod(F) -> _ -> ok end. - + +privdir(Config) -> + proplists:get_value(priv_dir, Config). +datadir(Config) -> + proplists:get_value(data_dir, Config). + +datadir_join(Config,Files) -> + filename:join([datadir(Config)|Files]). |