From 77397016ddef2f30237ab51d0be29de8c511dd29 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 28 Jun 2022 20:34:20 -0500 Subject: [PATCH] Use blather error method --- sgx-bwmsgsv2.rb | 24 +++--------------------- test/test_component.rb | 8 ++++++++ 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/sgx-bwmsgsv2.rb b/sgx-bwmsgsv2.rb index 8fd20c2c572dc127dcfbf405707a15d70724fb3f..4eec40d57ada902461629a6b94e5b0af87b03807 100755 --- a/sgx-bwmsgsv2.rb +++ b/sgx-bwmsgsv2.rb @@ -169,24 +169,6 @@ module SGXbwmsgsv2 panic(e) end - def self.error_msg(orig, query_node, type, name, _text=nil) - orig.type = :error - - error = Nokogiri::XML::Node.new 'error', orig.document - error['type'] = type - orig.add_child(error) - - suberr = Nokogiri::XML::Node.new name, orig.document - suberr['xmlns'] = 'urn:ietf:params:xml:ns:xmpp-stanzas' - error.add_child(suberr) - - orig.add_child(query_node) if query_node - - # TODO: add some explanatory xml:lang='en' text (see text param) - puts "RESPONSE3: #{orig.inspect}" - return orig - end - # workqueue_count MUST be 0 or else Blather uses threads! setup ARGV[0], ARGV[1], ARGV[2], ARGV[3], nil, nil, workqueue_count: 0 @@ -418,8 +400,8 @@ module SGXbwmsgsv2 to_catapult_possible_oob(m, num_dest, *creds) end }.catch { |e| - if e.is_a?(Array) && e.length == 2 - write_to_stream error_msg(m.reply, m.body, *e) + if e.is_a?(Array) && (e.length == 2 || e.length == 3) + write_to_stream m.as_error(e[1], e[0], e[2]) else EMPromise.reject(e) end @@ -726,7 +708,7 @@ module SGXbwmsgsv2 EMPromise.reject(:done) end.catch { |e| if e.is_a?(Array) && (e.length == 2 || e.length == 3) - write_to_stream error_msg(i.reply, qn, *e) + write_to_stream i.as_error(e[1], e[0], e[2]) elsif e != :done EMPromise.reject(e) end diff --git a/test/test_component.rb b/test/test_component.rb index 276f30fda4c77a696aa3f86a0d30f4562d2b0b6b..5380d89cc1070607e0916b85e2c0186dd51e3ffb 100644 --- a/test/test_component.rb +++ b/test/test_component.rb @@ -32,6 +32,10 @@ class ComponentTest < Minitest::Test ).element_name end + def xmpp_error_text(error) + error.find_first("ns:text", ns: Blather::StanzaError::STANZA_ERR_NS)&.text + end + def process_stanza(s) SGXbwmsgsv2.send(:client).receive_data(s) raise $panic if $panic @@ -251,6 +255,10 @@ class ComponentTest < Minitest::Test error = stanza.find_first("error") assert_equal "cancel", error["type"] assert_equal "conflict", xmpp_error_name(error) + assert_equal( + "Another user exists for +15550000000", + xmpp_error_text(error) + ) end em :test_ibr_conflict end