diff options
author | Toshiaki Asai <qtoship@gmail.com> | 2013-01-24 01:09:05 +0900 |
---|---|---|
committer | Toshiaki Asai <qtoship@gmail.com> | 2013-01-24 01:09:05 +0900 |
commit | 796984679d6c490513172aed26a199a3c1677347 (patch) | |
tree | 89ced6706ebc22c3cd974e9fe7a562acb9f267b0 | |
parent | 657fe65aca8ab6ed2e08b1c3fac684763f30e937 (diff) | |
download | mikutter-796984679d6c490513172aed26a199a3c1677347.tar.gz |
/test/core のテストを使うように変更した
-rw-r--r-- | core/test/icon_test.png | bin | 32983 -> 0 bytes | |||
-rw-r--r-- | core/test/test_cairo_markup_generator.rb | 70 | ||||
-rw-r--r-- | core/test/test_cairo_textselector.rb | 50 | ||||
-rw-r--r-- | core/test/test_entity.rb | 187 | ||||
-rw-r--r-- | core/test/test_gtk_webicon.rb | 29 | ||||
-rw-r--r-- | core/test/test_message.rb | 93 | ||||
-rw-r--r-- | core/test/test_messageconverters.rb | 53 | ||||
-rw-r--r-- | core/test/test_miquire.rb | 47 | ||||
-rw-r--r-- | core/test/test_userlist.rb | 93 | ||||
-rw-r--r-- | core/test/test_web_image_loader.rb | 169 | ||||
-rwxr-xr-x | test.rb | 4 | ||||
-rw-r--r-- | test/core/test_gtk_webicon.rb | 9 | ||||
-rw-r--r-- | test/core/test_messageconverters.rb | 5 | ||||
-rw-r--r-- | test/core/test_utils.rb | 28 | ||||
-rw-r--r-- | test/core/test_web_image_loader.rb | 19 |
15 files changed, 16 insertions, 840 deletions
diff --git a/core/test/icon_test.png b/core/test/icon_test.png Binary files differdeleted file mode 100644 index 09311fd2..00000000 --- a/core/test/icon_test.png +++ /dev/null diff --git a/core/test/test_cairo_markup_generator.rb b/core/test/test_cairo_markup_generator.rb deleted file mode 100644 index 00ab9cfd..00000000 --- a/core/test/test_cairo_markup_generator.rb +++ /dev/null @@ -1,70 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'mocha' -require File.expand_path(File.dirname(__FILE__) + '/../utils') -miquire :lib, 'test_unit_extensions' -miquire :mui, 'markup_generator' - -$debug = true -$logfile = nil -$daemon = false - # !> assigned but unused variable - type -class TC_MarkupGenerator < Test::Unit::TestCase - - def setup - @klass = Class.new do - attr_accessor :message - include Gdk::MarkupGenerator - - def initialize(m = nil) - @message = m end end end - - must "return message text" do - text = "てすと" - mg = @klass.new(mock()) - mg.message.expects(:to_show).returns(text) # !> shadowing outer local variable - points - assert_equal("てすと", mg.main_text) - text = "test" - mg = @klass.new(mock()) - mg.message.expects(:to_show).returns(text) - assert_equal("test", mg.main_text) - text = 'test > http://google.com' - mg = @klass.new(mock()) - mg.message.expects(:to_show).returns(text) - assert_equal("test > http://google.com", mg.main_text) - end # !> shadowing outer local variable - value - - must "return escaped message text" do # !> shadowing outer local variable - value - text = "てすと" - mg = @klass.new(mock()) # !> shadowing outer local variable - value - mg.message.expects(:to_show).returns(text) # !> assigned but unused variable - micro - assert_equal("てすと", mg.escaped_main_text) - - text = "test" - mg = @klass.new(mock()) - mg.message.expects(:to_show).returns(text) - assert_equal("test", mg.escaped_main_text) - - text = 'test > http://google.com' - mg = @klass.new(mock()) - mg.message.expects(:to_show).returns(text) - assert_equal("test > http://google.com", mg.escaped_main_text) - end - - must "return styled message text" do - text = '@null > http://t.co/SP1shjLy {mktr' - mg = @klass.new(mock()) - mg.message.stubs(:to_show => text, - :links => [{:slug=>:user_mentions, :range=>0...5, :face=>"@null", :from=>:_generate_value, :url=>"@null"}, - {:slug=>:urls, :range=>8...28, :face=>"http://google.com", :from=>:_generate_value, :url=>"http://t.co/SP1shjLy"}]) - assert_equal('<span underline="single">@null</span> > <span underline="single">http://google.com</span> {mktr', mg.styled_main_text) - - text = '12345 > http://t.co/SP1shjLy {mktr' - mg = @klass.new(mock()) - mg.message.stubs(:to_show => text, - :links => [{:slug=>:urls, :range=>8...28, :face=>"http://google.com", :from=>:_generate_value, :url=>"http://t.co/SP1shjLy"}]) - assert_equal('12345 > <span underline="single">http://google.com</span> {mktr', mg.styled_main_text) - - end - -end diff --git a/core/test/test_cairo_textselector.rb b/core/test/test_cairo_textselector.rb deleted file mode 100644 index a9c5d93f..00000000 --- a/core/test/test_cairo_textselector.rb +++ /dev/null @@ -1,50 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -$cairo = true -require File.expand_path(File.dirname(__FILE__) + '/../utils') -miquire :lib, 'test_unit_extensions' -miquire :mui, 'textselector' - -$debug = true # !> instance variable @textselect_start not initialized -$logfile = nil -$daemon = false - -class MockPainter - include Gdk::TextSelector - def on_modify - end -end - -class TC_TextSelector < Test::Unit::TestCase - - S1 = 'this is <b>a <a>test</a></b> text'.freeze - S2 = 'escape > text' - S3 = 'にほんごもじれつ' - - def setup - end - - def test_select - mp = MockPainter.new - assert_equal('th<span background="#000000" foreground="#ffffff">is is </span><b><span background="#000000" foreground="#ffffff">a </span><a><span background="#000000" foreground="#ffffff">te</span>st</a></b> text', - mp.textselector_press(2).textselector_release(12).textselector_markup(S1)) - assert_equal('th<span background="#000000" foreground="#ffffff">is i</span>s <b>a <a>test</a></b> text', - mp.textselector_press(2).textselector_release(6).textselector_markup(S1)) - assert_equal('th<span background="#000000" foreground="#ffffff">is is <b>a <a>test</a></b> tex</span>t', - mp.textselector_press(2).textselector_release(18).textselector_markup(S1)) - - assert_equal('esca<span background="#000000" foreground="#ffffff">pe > t</span>ext', - mp.textselector_press(4).textselector_release(9).textselector_markup(S2)) - - assert_equal('にほ<span background="#000000" foreground="#ffffff">んごも</span>じれつ', - mp.textselector_press(2).textselector_release(5).textselector_markup(S3)) - - end - -end -# >> Loaded suite - -# >> Started -# >> . -# >> Finished in 0.002221 seconds. -# >> -# >> 1 tests, 5 assertions, 0 failures, 0 errors diff --git a/core/test/test_entity.rb b/core/test/test_entity.rb deleted file mode 100644 index 487a6ddd..00000000 --- a/core/test/test_entity.rb +++ /dev/null @@ -1,187 +0,0 @@ -# -*- coding: utf-8 -*- - -require 'test/unit' -require 'rubygems' -require 'mocha' -require 'pp' -require File.expand_path(File.dirname(__FILE__) + '/../utils') -miquire :lib, 'test_unit_extensions' -miquire :core, 'entity' -miquire :core, 'userconfig' - -class Plugin -end - -class String - def inspect - to_s - end -end - -module Pango - ESCAPE_RULE = {'&' => '&' ,'>' => '>', '<' => '<'}.freeze - class << self - - # テキストをPango.parse_markupで安全にパースできるようにエスケープする。 - def escape(text) - text.gsub(/[<>&]/){|m| Pango::ESCAPE_RULE[m] } end end end - - -class TC_Message < Test::Unit::TestCase - - THE_TWEET = '変な意味じゃなくてね。RT @kouichi_0308: アレでソレですか…(´・ω・`)シュン… RT @nene_loveplus: 昔から一緒にいるフォロワーさんは色々アレでソレでちょっと困っちゃうわね…。' - THE_ENTITY = { - :user_mentions => [ { :id_str => "127914421", - :screen_name => "kouichi_0308", - :name => "コウイチ(2011年度版)", - :id => 127914421, - :indices => [14, 27]}, - { :id_str => "95126742", - :screen_name => "nene_loveplus", - :name=>"姉ヶ崎寧々", - :id=>95126742, - :indices=>[53, 67]}], - :urls => [], - :hashtags => [] } - - THE_TWEET2 = '♥ Unfaithful by Rihanna #lastfm: http://bit.ly/3YP9Hq amazon: http://bit.ly/1tmPYb' - THE_ENTITY2 = { - :user_mentions=>[], - :hashtags=> [ { :text=>"lastfm", - :indices=>[30, 37] } ], - :urls=> [ { :expanded_url=>nil, - :indices=>[39, 59], - :url=>"http://bit.ly/3YP9Hq" }, - { :expanded_url=>nil, - :indices=>[68, 88], - :url=>"http://bit.ly/1tmPYb" } ] } - - THE_TWEET3 = 'RT @toshi_a: おいmikutterが変態ツイッタークライアントだという風説が' - THE_ENTITY3 = {} - - def setup - Plugin.stubs(:call).returns(true) - Message::Entity.addlinkrule(:urls, URI.regexp(['http','https'])){ |segment| } - Message::Entity.addlinkrule(:media){ |segment| } - Message::Entity.addlinkrule(:hashtags, /(#|#)([a-zA-Z0-9_]+)/){ |segment|} - Message::Entity.addlinkrule(:user_mentions, /(@|@|〄)[a-zA-Z0-9_]+/){ |segment| } - end - - def teardown - Message::Entity.refresh - end - - def test_1 - mes = stub - mes.stubs(:to_show).returns(THE_TWEET) - mes.stubs(:[]).with(:entities).returns(THE_ENTITY) - mes.stubs(:is_a?).with(Message).returns(true) - - entity = Message::Entity.new(mes) - - assert_equal("変な意味じゃなくてね。RT @kouichi_0308: アレでソレですか…(´・ω・`)シュン… RT @nene_loveplus: 昔から一緒にいるフォロワーさんは色々アレでソレでちょっと困っちゃうわね…。", entity.to_s) - - splited = mes.to_show.split(//u).map{ |s| Pango::ESCAPE_RULE[s] || s } - entity.reverse_each{ |l| - splited[l[:range]] = '<span underline="single" underline_color="#000000">'+"#{Pango.escape(l[:face])}</span>" - } - splited - end - - - def test_2 - mes = stub - mes.stubs(:to_show).returns(THE_TWEET2) - mes.stubs(:[]).with(:entities).returns(THE_ENTITY2) - mes.stubs(:is_a?).with(Message).returns(true) - - Plugin.stubs(:filtering).with(:expand_url, 'http://bit.ly/3YP9Hq').returns(['http://www.last.fm/music/Rihanna/_/Unfaithful']) - Plugin.stubs(:filtering).with(:expand_url, 'http://bit.ly/1tmPYb').returns(['http://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA']) - Plugin.stubs(:filtering).with(:is_expanded, 'http://bit.ly/3YP9Hq').returns([false]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://bit.ly/1tmPYb').returns([false]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://www.last.fm/music/Rihanna/_/Unfaithful').returns([true]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA').returns([true]) - - entity = Message::Entity.new(mes) - - # pp entity.to_a - - a = entity.to_a.map{ |x| x.dup.tap{|n|n.delete(:regexp)} } - - assert_kind_of(String, entity.to_s) - assert_equal('♥ Unfaithful by Rihanna #lastfm: http://www.last.fm/music/Rihanna/_/Unfaithful amazon: http://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA', entity.to_s.inspect) - end - - def test_3 - mes = stub - mes.stubs(:to_show).returns(THE_TWEET3) - mes.stubs(:[]).with(:entities).returns(THE_ENTITY3) - mes.stubs(:is_a?).with(Message).returns(true) - entity = Message::Entity.new(mes) - assert_kind_of(String, entity.to_s) - assert_equal("RT @toshi_a: \343\201\212\343\201\204mikutter\343\201\214\345\244\211\346\205\213\343\203\204\343\202\244\343\203\203\343\202\277\343\203\274\343\202\257\343\203\251\343\202\244\343\202\242\343\203\263\343\203\210\343\201\240\343\201\250\343\201\204\343\201\206\351\242\250\350\252\254\343\201\214", entity.to_s.inspect) - end - - def test_4 - tweet = 'もともとは@penguin2716さんに勧められて始めたついった。そして彼より遅く始めた自分がTwitterにハマり、彼の総ポスト数をすぐに追い抜いたと思ったのですが、今や彼はれっきとしたmikutter廃人となり、ワタシの手の届かぬ領域に到達されました。' - mes = stub - mes.stubs(:to_show).returns(tweet) - mes.stubs(:[]).with(:entities).returns({}) - mes.stubs(:is_a?).with(Message).returns(true) - entity = Message::Entity.new(mes) - - assert_kind_of(String, entity.to_s) - assert_equal(tweet, entity.to_s.inspect) - end - - def test_5 - tweet = '一体何をやってんだろう(笑)。 > @toshi_a the hacker' - mes = stub - mes.stubs(:to_show).returns(tweet) - mes.stubs(:[]).with(:entities).returns({:hashtags=>[], :urls=>[], :user_mentions=>[{:name=>"蝶舞スカーフ型としぁ", :screen_name=>"toshi_a", :indices=>[21, 29], :id=>15926668, :id_str=>"15926668"}]}) - mes.stubs(:is_a?).with(Message).returns(true) - entity = Message::Entity.new(mes) - - assert_kind_of(String, entity.to_s) - assert_equal(tweet, entity.to_s.inspect) - end - - def test_6 - Plugin.stubs(:filtering).with(:is_expanded, 'goo.gl/2tsIG').returns([true]) - tweet = 'まだまだ絶賛配信中!今日は「日常のラヂオ」第35回がランティスネットラジオ goo.gl/2tsIG にて22時から配信スタートです!「日常」が好きな人ならきっと楽しんでいただけますのでよろしくお願いします。 #nichijou' - mes = stub - mes.stubs(:to_show).returns(tweet) - mes.stubs(:[]).with(:entities). - returns({ :user_mentions=>[], - :urls => [{ :url=>"goo.gl/2tsIG", - :indices=>[38, 50], - :expanded_url=>nil } ], - :hashtags => [{ :indices=>[105, 114], - :text=>"nichijou" } ]}) - mes.stubs(:is_a?).with(Message).returns(true) - entity = Message::Entity.new(mes) - - assert_kind_of(String, entity.to_s) - assert_equal(tweet, entity.to_s.inspect) - end - -end - - -# >> Loaded suite - -# >> Started -# >> .F... -# >> Finished in 0.015698 seconds. -# >> -# >> 1) Failure: -# >> test_2(TC_Message) -# >> [-:145:in `test_2' -# >> /usr/lib/ruby/gems/1.8/gems/mocha-0.9.12/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in `__send__' -# >> /usr/lib/ruby/gems/1.8/gems/mocha-0.9.12/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:22:in `run']: -# >> <♥ Unfaithful by Rihanna #lastfm: http://www.last.fm/music/Rihanna/_/Unfaithful amazon: http://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA> expected but was -# >> <♥ Unfaithful by Rihanna #lahttp://www.last.fm/music/Rihanna/_/Unfaithful3YP9Hq amhttp://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA1tmPYb>. -# >> -# >> 5 tests, 9 assertions, 1 failures, 0 errors - -# >> <♥ Unfaithful by Rihanna #lastfm: http://www.last.fm/music/Rihanna/_/Unfaithful amazon: http://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBA> expected but was -# >> <♥ Unfaithful by Rihanna #lasthttp://www.last.fm/music/Rihanna/_/UnfaithfulP9Hq amazhttp://www.amazon.com/A-Girl-Like-Me/dp/B001144EBA?SubscriptionId=12CBBK5SPFDF9BJG9N82&tag=nickelscom-20&linkCode=xm2&camp=2025&creative=165953&creativeASIN=B001144EBAmPYb>. diff --git a/core/test/test_gtk_webicon.rb b/core/test/test_gtk_webicon.rb deleted file mode 100644 index 08a406ca..00000000 --- a/core/test/test_gtk_webicon.rb +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'rubygems' -require 'mocha' -require 'webmock' -require 'gtk2' -require File.expand_path(File.dirname(__FILE__) + '/../utils') - -require 'lib/test_unit_extensions' -miquire :mui, 'webicon' - -class TC_GtkWebIcon < Test::Unit::TestCase - def setup - end - - must "local image load" do - image = Gtk::WebIcon.new(Skin.get('mikutter.png'), 48, 48) - assert_kind_of(Gdk::Pixbuf, image.pixbuf) - assert_not_equal(Gdk::WebImageLoader.loading_pixbuf(48, 48), image.pixbuf) - assert_not_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), image.pixbuf) - end - - must "local image not found" do - image = Gtk::WebIcon.new('notfound-file', 48, 48) - assert_kind_of(Gdk::Pixbuf, image.pixbuf) - assert_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), image.pixbuf) - end - -end diff --git a/core/test/test_message.rb b/core/test/test_message.rb deleted file mode 100644 index 501a8679..00000000 --- a/core/test/test_message.rb +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'mocha' -require File.expand_path(File.dirname(__FILE__) + '/../lib/test_unit_extensions') -require File.expand_path(File.dirname(__FILE__) + '/../utils') -miquire :core, 'message' -miquire :core, 'service' - -$debug = false -# seterrorlevel(:notice) -$logfile = nil -$daemon = false -Plugin = Class.new do - def self.call(*args); end - def self.filtering(*args) - args[1, args.size] end -end - -class TC_Message < Test::Unit::TestCase - def setup - user_obj = { - id: 164348251, - name: "mikutter_bot", - idname: "mikutter_bot" } - user = User.new_ifnecessary( user_obj ) - Service.any_instance.stubs(:user_initialize).returns(user) - @service ||= Service.new - end # !> ambiguous first argument; put parentheses or even spaces - - must "hierarchy check" do - toshi = User.new_ifnecessary(:id => 123456, :idname => 'toshi_a', :name => 'toshi') - miku = User.new_ifnecessary(:id => 393939, :idname => 'ha2ne39', :name => 'miku') - c1 = Message.new_ifnecessary(:id => 11, :message => '@ha2ne39 みくちゃああああああああああああん', :user => toshi, :created => Time.now) - c2 = Message.new_ifnecessary(:id => 12, :message => '@toshi_a なに', :user => miku, :replyto =>c1, :created => Time.now) - c3 = Message.new_ifnecessary(:id => 13, :message => '@ha2ne39 ぺろぺろぺろぺろ(^ω^)', :user => toshi, :replyto =>c2, :created => Time.now) - c4 = Message.new_ifnecessary(:id => 14, :message => '@toshi_a 垢消せ', :user => miku, :replyto =>c3, :created => Time.now) - c5 = Message.new_ifnecessary(:id => 15, :message => '@toshi_a キモい', :user => miku, :replyto =>c3, :created => Time.now) - assert_equal(c1, c2.receive_message) - assert_kind_of(Message, c2.receive_message) - assert_kind_of(Message, c1) # !> method redefined; discarding old inspect - assert_equal(true, c1.children.include?(c2)) - - assert_instance_of Set, c2.children - assert_equal c2.receive_message, c1 - assert_equal c3.receive_message, c2 - Plugin.stubs(:filtering).with(:replied_by, c3, Set.new).returns([c3, [c4, c5]]) - Plugin.stubs(:filtering).with(:retweeted_by, c3, Set.new).returns([c3, []]) - c3children = c3.children - assert c3children.include?(c4) - assert c3children.include?(c5) - assert !c3children.include?(c2) - assert_equal c4.receive_message, c3 - end - - must "around check" do - toshi = User.new_ifnecessary(:id => 123456, :idname => 'toshi_a', :name => 'toshi') - miku = User.new_ifnecessary(:id => 393939, :idname => 'ha2ne39', :name => 'miku') - c1 = Message.new_ifnecessary(:id => 21, :message => 'おはよう', :user => toshi, :created => Time.now) - c2 = Message.new_ifnecessary(:id => 22, :message => '@toshi_a おはよう', :user => miku, :replyto =>c1, :created => Time.now) - c3 = Message.new_ifnecessary(:id => 23, :message => '@ha2ne39 ぺろぺろぺろぺろ(^ω^)', :user => toshi, :replyto =>c2, :created => Time.now) - c4 = Message.new_ifnecessary(:id => 24, :message => '@toshi_a おはよう', :user => toshi, :replyto =>c1, :created => Time.now) - c1.children << c2 - c2.children << c3 - c1.children << c4 - assert_equal [21, 22, 23, 24], c2.around.map(&:id).sort - assert_equal [22, 23], c2.children_all.map(&:id).sort - end - - must "receive user detect" do - toshi = User.new_ifnecessary(:id => 123456, :idname => 'toshi_a', :name => 'toshi') - message = Message.new_ifnecessary(:id => 11, :message => '@ha2ne39 @mikutter_bot hey, miku!', :user => toshi, :created => Time.now) - assert_equal ["ha2ne39", "mikutter_bot"], message.receive_user_screen_names - end - - must "receive user not detect" do - toshi = User.new_ifnecessary(:id => 123456, :idname => 'toshi_a', :name => 'toshi') - message = Message.new_ifnecessary(:id => 11, :message => 'nemui', :user => toshi, :created => Time.now) - assert message.receive_user_screen_names.empty? - end - -end -# ~> notice: ./post.rb:61:in `initialize': -:14:in `new' -# ~> ./retriever.rb:345: warning: instance variable @time not initialized -# ~> ./retriever.rb:345: warning: instance variable @time not initialized -# ~> ./delayer.rb:60: warning: instance variable @busy not initialized -# ~> ./delayer.rb:60: warning: instance variable @busy not initialized -# ~> ./delayer.rb:60: warning: instance variable @busy not initialized -# >> Loaded suite - -# >> Started -# >> . -# >> Finished in 0.006363 seconds. -# >> -# >> 1 tests, 11 assertions, 0 failures, 0 errors diff --git a/core/test/test_messageconverters.rb b/core/test/test_messageconverters.rb deleted file mode 100644 index cb4ec320..00000000 --- a/core/test/test_messageconverters.rb +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'rubygems' -require 'mocha' -require File.expand_path(File.dirname(__FILE__) + '/../utils') -miquire :core, 'messageconverters' -miquire :lib, 'weakstorage' - -$debug = true -$logfile = nil -$daemon = false - -class Plugin -end - -class TC_MessageConverters < Test::Unit::TestCase - # include FlexMock::TestCase - - def setup - end - - def test_shrink - Plugin.stubs(:filtering).with(:shrink_url, 'http://google.jp/').returns(['http://ha2.ne/156']) - Plugin.stubs(:filtering).with(:shrink_url, 'http://mikutter.d.hachune.net/').returns(['http://ha2.ne/39']) - Plugin.stubs(:filtering).with(:is_expanded, 'http://google.jp/').returns(['http://google.jp/']) - Plugin.stubs(:filtering).with(:is_expanded, 'http://mikutter.d.hachune.net/').returns(['http://mikutter.d.hachune.net/']) - - w = MessageConverters.shrink_url_all('watching: http://mikutter.d.hachune.net/') - assert_equal('watching: http://ha2.ne/39', w) - w = MessageConverters.shrink_url_all('watching: http://mikutter.d.hachune.net/ http://google.jp/') - assert_equal("watching: http://ha2.ne/39 http://ha2.ne/156", w) - end - - def test_expand - Plugin.stubs(:filtering).with(:expand_url, 'http://ha2.ne/156').returns(['http://google.jp/']) - Plugin.stubs(:filtering).with(:expand_url, 'http://ha2.ne/39').returns(['http://mikutter.d.hachune.net/']) - Plugin.stubs(:filtering).with(:is_expanded, 'http://ha2.ne/39').returns([false]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://ha2.ne/156').returns([false]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://google.jp/').returns([true]) - Plugin.stubs(:filtering).with(:is_expanded, 'http://mikutter.d.hachune.net/').returns([true]) - - w = MessageConverters.expand_url_all('watching: http://ha2.ne/156') - assert_equal("watching: http://google.jp/", w) - w = MessageConverters.expand_url_all('watching: http://ha2.ne/156 http://ha2.ne/39') - assert_equal("watching: http://google.jp/ http://mikutter.d.hachune.net/", w) - end -end -# >> Loaded suite - -# >> Started -# >> .. -# >> Finished in 0.003505 seconds. -# >> -# >> 2 tests, 4 assertions, 0 failures, 0 errors diff --git a/core/test/test_miquire.rb b/core/test/test_miquire.rb deleted file mode 100644 index a5384271..00000000 --- a/core/test/test_miquire.rb +++ /dev/null @@ -1,47 +0,0 @@ -# -*- coding: utf-8 -*- - -require 'test/unit' -require 'rubygems' -require 'mocha' # !> already initialized constant AssertionFailedError -require File.expand_path(File.dirname(__FILE__) + '/../miquire') -require File.expand_path(File.dirname(__FILE__) + '/../lib/test_unit_extensions') - -$debug = true -$logfile = nil -$daemon = false - -Dir::chdir File.dirname(__FILE__) + '/../' - -class TC_Miquire < Test::Unit::TestCase - def setup - end - - must "miquire lib" do - Miquire.stubs(:miquire_original_require).with('library').returns(true).once - - miquire :lib, 'library' - end - - must "miquire normal" do - Miquire.stubs(:miquire_original_require).with('normal/normal_file').returns(true).once - - miquire :normal, 'normal_file' - end - - must "miquire allfiles" do - files = stub() - files.stubs(:select).returns(["file1", "file2", "file3"]) - Dir.stubs(:glob).with('allfiles/*').returns(files).once - - Miquire.stubs(:miquire_original_require).with('file1').returns(true).once - Miquire.stubs(:miquire_original_require).with('file2').returns(true).once - Miquire.stubs(:miquire_original_require).with('file3').returns(true).once - - miquire :allfiles - end - - # must "enum plugins" do - # Miquire::Plugin.loadpath << 'addon/' - # end - -end diff --git a/core/test/test_userlist.rb b/core/test/test_userlist.rb deleted file mode 100644 index 0e937ef3..00000000 --- a/core/test/test_userlist.rb +++ /dev/null @@ -1,93 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'mocha' -require File.expand_path(File.join(File.dirname(__FILE__), '..', 'utils')) -miquire :lib, 'test_unit_extensions' -miquire :core, 'userlist' -miquire :core, 'service' - -Dir::chdir File.dirname(__FILE__) + '/../' - -$debug = false -# seterrorlevel(:notice) -$logfile = nil -$daemon = false -Plugin = Class.new do - def self.call(*args); end - def self.filtering(*args) - args[1, args.size] end -end - -class TC_Message < Test::Unit::TestCase - def setup - user_obj = { - id: 164348251, - name: "mikutter_bot", - idname: "mikutter_bot" } - user = User.new_ifnecessary( user_obj ) - Service.any_instance.stubs(:user_initialize).returns(user) - @service ||= Service.new - end # !> ambiguous first argument; put parentheses or even spaces - - must "get member" do - u = [User.new_ifnecessary(:id => 128450, :idname => 'a', :name => 'a'), - User.new_ifnecessary(:id => 128451, :idname => 'b', :name => 'b'), - User.new_ifnecessary(:id => 128452, :idname => 'c', :name => 'c')] - l = [UserList.new_ifnecessary(id: 128453, name: "testlist", full_name: "@a/testlist", slug: "@a/testlist", user: u[0], member: [ u[1] ]), - UserList.new_ifnecessary(id: 128454, name: "testlist2", full_name: "@a/testlist2", slug: "@a/testlist", user: u[0], member: [ u[1], u[2] ])] - assert_equal [u[1]], l[0].member - assert_equal [u[1], u[2]], l[1].member - end - - must "member?" do - u = [User.new_ifnecessary(:id => 128450, :idname => 'a', :name => 'a'), - User.new_ifnecessary(:id => 128451, :idname => 'b', :name => 'b'), - User.new_ifnecessary(:id => 128452, :idname => 'c', :name => 'c')] - l = [UserList.new_ifnecessary(id: 128453, name: "testlist", full_name: "@a/testlist", slug: "@a/testlist", user: u[0], member: [ u[1] ]), - UserList.new_ifnecessary(id: 128454, name: "testlist2", full_name: "@a/testlist2", slug: "@a/testlist", user: u[0], member: [ u[1], u[2] ])] - assert not(l[0].member? u[0]) - assert l[0].member? u[1] - assert not(l[0].member? u[2]) - assert not(l[1].member? u[0]) - assert l[1].member? u[1] - assert l[1].member? u[2] - end - - must "related" do - u = [User.new_ifnecessary(:id => 128450, :idname => 'a', :name => 'a'), - User.new_ifnecessary(:id => 128451, :idname => 'b', :name => 'b'), - User.new_ifnecessary(:id => 128452, :idname => 'c', :name => 'c')] - l = [UserList.new_ifnecessary(id: 128453, name: "testlist", full_name: "@a/testlist", slug: "@a/testlist", user: u[0], member: [ u[1] ]), - UserList.new_ifnecessary(id: 128454, name: "testlist2", full_name: "@a/testlist2", slug: "@a/testlist", user: u[0], member: [ u[1], u[2] ])] - m = [[Message.new_ifnecessary(id: 639620, message: "", user: u[0]), - Message.new_ifnecessary(id: 639621, message: "", user: u[1]), - Message.new_ifnecessary(id: 639622, message: "", user: u[2])], - [Message.new_ifnecessary(id: 639600, message: "@b", user: u[0]), - Message.new_ifnecessary(id: 639601, message: "@b", user: u[1]), - Message.new_ifnecessary(id: 639602, message: "@b", user: u[2])], - [Message.new_ifnecessary(id: 639610, message: "@b @c", user: u[0]), - Message.new_ifnecessary(id: 639611, message: "@b @c", user: u[1]), - Message.new_ifnecessary(id: 639612, message: "@b @c", user: u[2])]] - assert !l[0].related?(m[0][0]), "リストに関係ないユーザa" - assert l[0].related?(m[0][1]) - assert !l[0].related?(m[0][2]) - assert !l[1].related?(m[0][0]) - assert l[1].related?(m[0][1]) - assert l[1].related?(m[0][2]) - - assert !l[0].related?(m[1][0]), "関係ないユーザaからリスト内ユーザbに対するリプライ" - assert l[0].related?(m[1][1]), "リスト内ユーザbがリスト内ユーザbにリプライ" - assert !l[0].related?(m[1][2]), "リスト内ユーザbが第三者cにリプライ" - assert !l[1].related?(m[1][0]) - assert l[1].related?(m[1][1]) - assert l[1].related?(m[1][2]) - - assert !l[0].related?(m[2][0]) - assert l[0].related?(m[2][1]) - assert !l[0].related?(m[2][2]) - assert !l[1].related?(m[2][0]) - assert l[1].related?(m[2][1]) - assert l[1].related?(m[2][2]) - end - -end diff --git a/core/test/test_web_image_loader.rb b/core/test/test_web_image_loader.rb deleted file mode 100644 index e20497f1..00000000 --- a/core/test/test_web_image_loader.rb +++ /dev/null @@ -1,169 +0,0 @@ -# -*- coding: utf-8 -*- -require 'test/unit' -require 'rubygems' -require 'mocha' -require 'webmock' -require 'gtk2' - -require File.expand_path(File.dirname(__FILE__) + '/../utils') - -require 'lib/test_unit_extensions' -miquire :mui, 'web_image_loader' -miquire :core, 'delayer' - -Plugin = Class.new do - def self.call(*args); end -end - -class TC_GtkWebImageLoader < Test::Unit::TestCase - def setup - Gdk::WebImageLoader::ImageCache.clear - urls = ['http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png', - 'http://a0.twimg.com/profile_images/1522298893/みくかわいい.png', - 'http://internal.server.error/', - 'http://notfound/'] - urls.each{ |u| - Plugin.stubs(:filtering).with(:image_cache, u, nil).returns([u, nil]) } - urls.each{ |u| - Plugin.stubs(:filtering).with(:web_image_loader_url_filter, u, nil).returns([u, nil]) } - end - - must "not found" do - WebMock.stub_request(:get, "notfound").to_return(:status => 404) - response = nil - Gdk::WebImageLoader.pixbuf('http://notfound/', 48, 48){ |pixbuf, success, url| - response = [pixbuf, success] - } - (Thread.list - [Thread.current]).each &:join - Delayer.run - assert_equal(true, response[1]) - assert_kind_of(Gdk::Pixbuf, response[0]) - end - - must "internal server error" do - WebMock.stub_request(:get, "internal.server.error").to_return(:status => 404) - response = nil - Gdk::WebImageLoader.pixbuf('http://internal.server.error/', 48, 48){ |pixbuf, success, url| - response = [pixbuf, success] - } - (Thread.list - [Thread.current]).each &:join - Delayer.run - assert_equal(true, response[1]) - assert_kind_of(Gdk::Pixbuf, response[0]) - end - - must "successfully load image" do - url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) - response = nil - Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf, success, url| - response = [pixbuf, success] - } - (Thread.list - [Thread.current]).each &:join - while not Delayer.empty? do Delayer.run end - assert_equal(true, Delayer.empty?) - assert_equal(0, Delayer.size) - assert_equal(nil, response[1]) - # response[0].save('test/result.png', 'png') - - # もう一回ロードしてみる - response2 = nil - pb = Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf, success, url| - response2 = [pixbuf, success] - } - assert_equal(response[0], pb) - end - - must "load by url included japanese" do - # URI::InvalidURIError - # url = 'http://a1.twimg.com/profile_images/80925056/クリップボード01_normal.jpg' - url = 'http://a0.twimg.com/profile_images/1522298893/みくかわいい.png' - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) - response = nil - Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf, success, url| - response = [pixbuf, success] - } - (Thread.list - [Thread.current]).each &:join - while not Delayer.empty? do Delayer.run end - assert_equal(true, Delayer.empty?) - assert_equal(0, Delayer.size) - assert_equal(nil, response[1]) - end - - must "successfully load local image" do - url = 'skin/data/icon.png' - Plugin.stubs(:filtering).with(:web_image_loader_url_filter, url).returns([url]) - response = Gdk::WebImageLoader.pixbuf(url, 48, 48) - (Thread.list - [Thread.current]).each &:join - Delayer.run - assert_not_equal(Gdk::WebImageLoader.loading_pixbuf(48, 48), response, "ローカル画像は絶対にロード中のイメージは返ってこない") - assert_not_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), response, "画像が見つからない") - end - - must "local file not found" do - Plugin.stubs(:filtering).with(:web_image_loader_url_filter, 'notfound-file').returns(['notfound-file']) - response = Gdk::WebImageLoader.pixbuf('notfound-file', 48, 48) - (Thread.list - [Thread.current]).each &:join - Delayer.run - assert_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), response) - end - - must "multi thread load image" do - url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - access_count = 0 - WebMock.stub_request(:get, url).to_return{ - atomic{ access_count += 1 } - File.open('test/icon_test.png'){ |io| io.read } - } - response = Array.new(20) - 20.times{ |cnt| - response[cnt] = Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf| - response[cnt] = pixbuf - } - } - (Thread.list - [Thread.current]).each &:join - until Delayer.empty? do Delayer.run end - assert_equal(true, Delayer.empty?) - assert_equal(0, Delayer.size) - - response.each { |r| - assert_kind_of(Gdk::Pixbuf, r) - assert_not_equal(Gdk::WebImageLoader.loading_pixbuf(48, 48), r) - assert_not_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), r) } - assert_equal(1, access_count) - end - - must "get raw data success" do - raw = response = nil - Thread.new { - url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - http_raw = File.open('test/icon_test.png'){ |io| io.read }.force_encoding('ASCII-8BIT').freeze - raw = http_raw[http_raw.index("\211PNG".force_encoding('ASCII-8BIT')), http_raw.size] - WebMock.stub_request(:get, url).to_return(http_raw) - Gdk::WebImageLoader.get_raw_data(url){ |data, success, url| - response = [data, success] } }.join - (Thread.list - [Thread.current]).each &:join - while not Delayer.empty? do Delayer.run end - assert_equal(true, Delayer.empty?) - assert_equal(0, Delayer.size) - assert_equal(raw, response[0]) - end - - must "local path" do - localpath = nil - url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - Thread.new { - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) - localpath = Gdk::WebImageLoader.local_path(url) - }.join - assert_equal("/home/toshi/.mikutter/tmp/e9183b9265dcf0728fceceb07444e8c1.png.png", localpath) - end - - must "is local path" do - assert_equal(false, Gdk::WebImageLoader.is_local_path?('http://example.com/a.png')) - assert_equal(true, Gdk::WebImageLoader.is_local_path?('/path/to/image.png')) - assert_equal(true, Gdk::WebImageLoader.is_local_path?('test.png')) - assert_equal(true, Gdk::WebImageLoader.is_local_path?('file:///path/to/image.png')) - assert_equal(false, Gdk::WebImageLoader.is_local_path?('https://example.com/a.png')) end - -end @@ -1,11 +1,11 @@ -# -*- coding: utf-8 -*- #! /usr/bin/ruby +# -*- coding: utf-8 -*- successed = [] failed = [] processes = {} -Dir.glob(File.dirname(__FILE__) + '/core/test/test_*').each{ |f| +Dir.glob(File.dirname(__FILE__) + '/test/core/test_*').each{ |f| processes[fork { require File.expand_path(f) }] = f } Process.waitall.each{ |pid, stat| diff --git a/test/core/test_gtk_webicon.rb b/test/core/test_gtk_webicon.rb index e7730cae..955015a1 100644 --- a/test/core/test_gtk_webicon.rb +++ b/test/core/test_gtk_webicon.rb @@ -4,11 +4,9 @@ require 'rubygems' require 'mocha' require 'webmock' require 'gtk2' -require File.expand_path(File.dirname(__FILE__) + '/../helper') -Dir.chdir(File.expand_path(File.dirname(__FILE__)+'/../core')) +require File.expand_path(File.dirname(__FILE__) + '/../../core/utils') -miquire :core, 'utils' -miquire :lib, 'test_unit_extensions' +require 'lib/test_unit_extensions' miquire :mui, 'webicon' class TC_GtkWebIcon < Test::Unit::TestCase @@ -16,11 +14,10 @@ class TC_GtkWebIcon < Test::Unit::TestCase end must "local image load" do - image = Gtk::WebIcon.new('test/result.png', 48, 48) + image = Gtk::WebIcon.new(Skin.get('mikutter.png'), 48, 48) assert_kind_of(Gdk::Pixbuf, image.pixbuf) assert_not_equal(Gdk::WebImageLoader.loading_pixbuf(48, 48), image.pixbuf) assert_not_equal(Gdk::WebImageLoader.notfound_pixbuf(48, 48), image.pixbuf) - image.pixbuf.save('test/result2.png', 'png') end must "local image not found" do diff --git a/test/core/test_messageconverters.rb b/test/core/test_messageconverters.rb index 0fd25836..4b88b59e 100644 --- a/test/core/test_messageconverters.rb +++ b/test/core/test_messageconverters.rb @@ -2,12 +2,11 @@ require 'test/unit' require 'rubygems' require 'mocha' -require File.expand_path(File.dirname(__FILE__) + '/../helper') -# require File.expand_path(File.dirname(__FILE__) + '/../utils') +require File.expand_path(File.dirname(__FILE__) + '/../../core/utils') miquire :core, 'messageconverters' +miquire :lib, 'weakstorage' $debug = true -# seterrorlevel(:notice) $logfile = nil $daemon = false diff --git a/test/core/test_utils.rb b/test/core/test_utils.rb deleted file mode 100644 index 2727b236..00000000 --- a/test/core/test_utils.rb +++ /dev/null @@ -1,28 +0,0 @@ -# -*- coding: utf-8 -*- - -require 'test/unit' -require 'uri' -<<<<<<< HEAD:core/test/test_utils.rb -require File.expand_path(File.dirname(__FILE__) + '/../utils') -======= -require File.expand_path(File.dirname(__FILE__) + '/../helper') -# require File.expand_path(File.dirname(__FILE__) + '/../utils') ->>>>>>> remotes/katsyoshi/miku_dis:test/core/test_utils.rb -miquire :lib, 'test_unit_extensions' - -$debug = true -$debug_avail_level = 3 - -class TC_Utils < Test::Unit::TestCase - - must "shrink too long text includs url in tail" do - text = '10.10の開発は9月2日のBetaリリースを控え,UserInterfaceFreeze・BetaFreezeを無事に通過しました。以降は原則としてGUI部分の大きな変更はなく,各機能のブラッシュアップに入ります。Ubuntu Weekly Topics http://bit.ly/123456' - assert_equal("10.10の開発は9月2日のBetaリリースを控え,UserInterfaceFreeze・BetaFreezeを無事に通過しました。以降は原則としてGUI部分の大きな変更はなく,各機能のブラッシュアップに入ります。Ubuntu Week http://bit.ly/123456", text.shrink(140, URI.regexp(['http','https']))) - end - - must "shrink too long url only" do - text = 'http://aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa.com' # aが140回 - assert_equal(text, text.shrink(140, URI.regexp(['http','https']))) - end - -end diff --git a/test/core/test_web_image_loader.rb b/test/core/test_web_image_loader.rb index 6d8b3641..f4405f7e 100644 --- a/test/core/test_web_image_loader.rb +++ b/test/core/test_web_image_loader.rb @@ -4,13 +4,11 @@ require 'rubygems' require 'mocha' require 'webmock' require 'gtk2' -require File.expand_path(File.dirname(__FILE__) + '/../helper') -Dir.chdir(File.expand_path(File.dirname(__FILE__) + '/../core')) -$LOAD_PATH.push '.' -# require 'utils' +ICON_TEST = File.expand_path(File.dirname(__FILE__) + "/icon_test.png") +require File.expand_path(File.dirname(__FILE__) + '/../../core/utils') -# require 'lib/test_unit_extensions' +require 'lib/test_unit_extensions' miquire :mui, 'web_image_loader' miquire :core, 'delayer' @@ -19,6 +17,7 @@ Plugin = Class.new do end class TC_GtkWebImageLoader < Test::Unit::TestCase + def setup Gdk::WebImageLoader::ImageCache.clear urls = ['http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png', @@ -57,7 +56,7 @@ class TC_GtkWebImageLoader < Test::Unit::TestCase must "successfully load image" do url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) + WebMock.stub_request(:get, url).to_return(File.open(ICON_TEST){ |io| io.read }) response = nil Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf, success, url| response = [pixbuf, success] @@ -81,7 +80,7 @@ class TC_GtkWebImageLoader < Test::Unit::TestCase # URI::InvalidURIError # url = 'http://a1.twimg.com/profile_images/80925056/クリップボード01_normal.jpg' url = 'http://a0.twimg.com/profile_images/1522298893/みくかわいい.png' - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) + WebMock.stub_request(:get, url).to_return(File.open(ICON_TEST){ |io| io.read }) response = nil Gdk::WebImageLoader.pixbuf(url, 48, 48){ |pixbuf, success, url| response = [pixbuf, success] @@ -116,7 +115,7 @@ class TC_GtkWebImageLoader < Test::Unit::TestCase access_count = 0 WebMock.stub_request(:get, url).to_return{ atomic{ access_count += 1 } - File.open('test/icon_test.png'){ |io| io.read } + File.open(ICON_TEST){ |io| io.read } } response = Array.new(20) 20.times{ |cnt| @@ -140,7 +139,7 @@ class TC_GtkWebImageLoader < Test::Unit::TestCase raw = response = nil Thread.new { url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' - http_raw = File.open('test/icon_test.png'){ |io| io.read }.force_encoding('ASCII-8BIT').freeze + http_raw = File.open(ICON_TEST){ |io| io.read }.force_encoding('ASCII-8BIT').freeze raw = http_raw[http_raw.index("\211PNG".force_encoding('ASCII-8BIT')), http_raw.size] WebMock.stub_request(:get, url).to_return(http_raw) Gdk::WebImageLoader.get_raw_data(url){ |data, success, url| @@ -156,7 +155,7 @@ class TC_GtkWebImageLoader < Test::Unit::TestCase localpath = nil url = 'http://a0.twimg.com/profile_images/1522298893/itiiti_hitono_icon_no_file_mei_mirutoka_teokure_desune.png' Thread.new { - WebMock.stub_request(:get, url).to_return(File.open('test/icon_test.png'){ |io| io.read }) + WebMock.stub_request(:get, url).to_return(File.open(ICON_TEST){ |io| io.read }) localpath = Gdk::WebImageLoader.local_path(url) }.join assert_equal("/home/toshi/.mikutter/tmp/e9183b9265dcf0728fceceb07444e8c1.png.png", localpath) |