diff --git a/wst/trunk/tests/test_suite/files/soap_action.wsdl b/wst/trunk/tests/test_suite/files/soap_action.wsdl new file mode 100644 index 000000000..6c3a90039 --- /dev/null +++ b/wst/trunk/tests/test_suite/files/soap_action.wsdl @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wst/trunk/tests/test_suite/test_parsers.pas b/wst/trunk/tests/test_suite/test_parsers.pas index 8d2eb92a5..10700dd88 100644 --- a/wst/trunk/tests/test_suite/test_parsers.pas +++ b/wst/trunk/tests/test_suite/test_parsers.pas @@ -198,6 +198,7 @@ type procedure message_parts_type_hint(); procedure parameter_var(); procedure parameter_const_default(); + procedure soap_action(); end; implementation @@ -2665,6 +2666,38 @@ begin end; end; +procedure TTest_WsdlParser.soap_action(); +var + tr : TwstPasTreeContainer; + elt : TPasElement; + intf : TPasClassType; + i : Integer; + mth : TPasProcedure; +begin + tr := ParseDoc('soap_action'); + try //SymbolTable.Properties.SetValue(AOp,s_TRANSPORT + '_' + s_soapAction,nd.NodeValue); + elt := tr.FindElement('TestService'); + CheckNotNull(elt,'TestService'); + CheckIs(elt,TPasClassType); + intf := elt as TPasClassType; + mth := nil; + for i := 0 to (intf.Members.Count - 1) do begin + if TObject(intf.Members[i]).InheritsFrom(TPasProcedure) then begin + mth := TPasProcedure(intf.Members[i]); + Break; + end; + end; + CheckNotNull(mth,'test_proc not found'); + CheckEquals('test_proc',mth.Name); + CheckEquals( + 'http://wst.Sample/Soap/Action/', + tr.Properties.GetValue(mth,s_TRANSPORT + '_' + s_soapAction) + ); + finally + tr.Free(); + end; +end; + function TTest_WsdlParser.LoadComplexType_Class_default_values() : TwstPasTreeContainer; begin Result := ParseDoc(x_complexType_class_default);