From 7e9e160f179d98671a7260661336bcab4bda5392 Mon Sep 17 00:00:00 2001 From: Jeff Dallien Date: Wed, 22 Feb 2012 19:19:01 -0500 Subject: [PATCH] Should close the db after extracting the cookies from it. --- .../chrome_cookie_extractor.rb | 7 +++--- .../firefox_cookie_extractor.rb | 7 +++--- spec/chrome_cookie_extractor_spec.rb | 22 ++++++++++++++++++- spec/firefox_cookie_extractor_spec.rb | 22 ++++++++++++++++++- 4 files changed, 50 insertions(+), 8 deletions(-) diff --git a/lib/cookie_extractor/chrome_cookie_extractor.rb b/lib/cookie_extractor/chrome_cookie_extractor.rb index 61901f5..6e11004 100644 --- a/lib/cookie_extractor/chrome_cookie_extractor.rb +++ b/lib/cookie_extractor/chrome_cookie_extractor.rb @@ -11,9 +11,9 @@ module CookieExtractor def extract db = SQLite3::Database.new @cookie_file db.results_as_hash = true - @result = [] + result = [] db.execute("SELECT * FROM cookies") do |row| - @result << [ row['host_key'], + result << [ row['host_key'], true_false_word(is_domain_wide(row['host_key'])), row['path'], true_false_word(row['secure']), @@ -22,7 +22,8 @@ module CookieExtractor row['value'] ].join("\t") end - @result + db.close + result end end end diff --git a/lib/cookie_extractor/firefox_cookie_extractor.rb b/lib/cookie_extractor/firefox_cookie_extractor.rb index e665849..68d1252 100644 --- a/lib/cookie_extractor/firefox_cookie_extractor.rb +++ b/lib/cookie_extractor/firefox_cookie_extractor.rb @@ -11,9 +11,9 @@ module CookieExtractor def extract db = SQLite3::Database.new @cookie_file db.results_as_hash = true - @result = [] + result = [] db.execute("SELECT * FROM moz_cookies") do |row| - @result << [ row['host'], + result << [ row['host'], true_false_word(is_domain_wide(row['host'])), row['path'], true_false_word(row['isSecure']), @@ -22,7 +22,8 @@ module CookieExtractor row['value'] ].join("\t") end - @result + db.close + result end end end diff --git a/spec/chrome_cookie_extractor_spec.rb b/spec/chrome_cookie_extractor_spec.rb index 98c343f..d9a13a4 100644 --- a/spec/chrome_cookie_extractor_spec.rb +++ b/spec/chrome_cookie_extractor_spec.rb @@ -2,12 +2,32 @@ require File.join(File.dirname(__FILE__), "spec_helper") describe CookieExtractor::ChromeCookieExtractor do before :each do - @fake_cookie_db = double("cookie database", :results_as_hash= => true) + @fake_cookie_db = double("cookie database", + :results_as_hash= => true, + :close => true) SQLite3::Database.should_receive(:new). with('filename'). and_return(@fake_cookie_db) end + describe "opening and closing a sqlite db" do + before :each do + @fake_cookie_db.should_receive(:execute).and_yield( + { 'host_key' => '.dallien.net', + 'path' => '/', + 'secure' => '0', + 'expires_utc' => '1234567890', + 'name' => 'NAME', + 'value' => 'VALUE'}) + @extractor = CookieExtractor::ChromeCookieExtractor.new('filename') + end + + it "should close the db when finished" do + @fake_cookie_db.should_receive(:close) + @extractor.extract + end + end + describe "with a cookie that has a host starting with a dot" do before :each do @fake_cookie_db.should_receive(:execute).and_yield( diff --git a/spec/firefox_cookie_extractor_spec.rb b/spec/firefox_cookie_extractor_spec.rb index fb86adf..8fd4ae5 100644 --- a/spec/firefox_cookie_extractor_spec.rb +++ b/spec/firefox_cookie_extractor_spec.rb @@ -2,12 +2,32 @@ require File.join(File.dirname(__FILE__), "spec_helper") describe CookieExtractor::FirefoxCookieExtractor do before :each do - @fake_cookie_db = double("cookie database", :results_as_hash= => true) + @fake_cookie_db = double("cookie database", + :results_as_hash= => true, + :close => true) SQLite3::Database.should_receive(:new). with('filename'). and_return(@fake_cookie_db) end + describe "opening and closing a sqlite db" do + before :each do + @fake_cookie_db.should_receive(:execute).and_yield( + {'host' => '.dallien.net', + 'path' => '/', + 'isSecure' => '0', + 'expiry' => '1234567890', + 'name' => 'NAME', + 'value' => 'VALUE'}) + @extractor = CookieExtractor::FirefoxCookieExtractor.new('filename') + end + + it "should close the db when finished" do + @fake_cookie_db.should_receive(:close) + @extractor.extract + end + end + describe "with a cookie that has a host starting with a dot" do before :each do @fake_cookie_db.should_receive(:execute).and_yield(