sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/

test/unit/util/test_query.rb (1375B) - raw

      1 # encoding: utf-8
      2 
      3 require "test_helper"
      4 
      5 require "sup/util/query"
      6 require "xapian"
      7 
      8 describe Redwood::Util::Query do
      9   describe ".describe" do
     10     it "returns a UTF-8 description of query" do
     11       query = Xapian::Query.new "テスト"
     12       life = "生活: "
     13 
     14       assert_raises Encoding::CompatibilityError do
     15         _ = life + query.description
     16       end
     17 
     18       desc = Redwood::Util::Query.describe(query)
     19       _ = (life + desc) # No exception thrown
     20     end
     21 
     22     it "returns a valid UTF-8 description of bad input" do
     23       msg = "asdfa \xc3\x28 åasdf"
     24       query = Xapian::Query.new msg
     25       life = 'hæi'
     26 
     27       if query.description.force_encoding("UTF-8").valid_encoding?
     28         # xapian 1.4 internally handles this bad input
     29         assert true
     30       else
     31         # xapian 1.2 doesn't handle this bad input, so we do
     32         assert_raises Redwood::Util::Query::QueryDescriptionError do
     33           _desc = Redwood::Util::Query.describe (query)
     34         end
     35       end
     36 
     37       assert_raises Encoding::CompatibilityError do
     38         _ = life + query.description
     39       end
     40     end
     41 
     42     it "returns a valid UTF-8 fallback description of bad input" do
     43       msg = "asdfa \xc3\x28 åasdf"
     44       query = Xapian::Query.new msg
     45 
     46       desc = Redwood::Util::Query.describe(query, "invalid query")
     47 
     48       assert desc.force_encoding("UTF-8").valid_encoding?
     49 
     50     end
     51   end
     52 end