sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 256e36ab9deab4688cd59e1e5d7fca0d30301531
parent e22fd7e83f33c2a8572ee5939b3365753cd8d062
Author: Gaute Hope <eg@gaute.vetsj.com>
Date:   Sun, 21 Jul 2013 07:24:21 +0200

raise exception for bad string in query description

Diffstat:
M lib/sup/util/query.rb | 7 ++++++-
M test/unit/util/test_query.rb | 10 +++-------
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/lib/sup/util/query.rb b/lib/sup/util/query.rb
@@ -1,8 +1,13 @@
 module Redwood
   module Util
     module Query
+      class QueryDescriptionError < ArgumentError; end
+
       def self.describe query
-        query.description.force_encoding("UTF-8")
+        d = query.description.force_encoding("UTF-8")
+
+        raise QueryDescriptionError.new(d) unless d.valid_encoding?
+        return d
       end
     end
   end
diff --git a/test/unit/util/test_query.rb b/test/unit/util/test_query.rb
@@ -25,17 +25,13 @@ describe Redwood::Util::Query do
       life = 'hæi'
 
       # this is now possibly UTF-8 string with possibly invalid chars
-      desc = Redwood::Util::Query.describe (query)
+      assert_raises Redwood::Util::Query::QueryDescriptionError do
+        desc = Redwood::Util::Query.describe (query)
+      end
 
       assert_raises Encoding::CompatibilityError do
         _ = life + query.description
       end
-
-      _ = (life + desc)
-
-      # try to do something with string: raises invalid byte sequence
-      _.gsub(/" "/, "  ")
-
     end
   end
 end