spec/gmail/message_spec.rb in gmail-0.5.0 vs spec/gmail/message_spec.rb in gmail-0.6.0
- old
+ new
@@ -1,181 +1,181 @@
-require 'spec_helper'
-
-describe Gmail::Message do
- describe "initialize" do
- let(:client) { mock_client }
- let(:mailbox) { client.mailbox(:all) }
-
- subject do
- mailbox.emails.first
- end
-
- it "sets uid and mailbox" do
- expect(subject.instance_variable_get(:@mailbox)).to be_a Gmail::Mailbox
- expect(subject.instance_variable_get(:@gmail)).to be_a Gmail::Client::Base
- expect(subject.instance_variable_get(:@uid)).to be_a Integer
- subject.labels
- end
-
- it "sets PREFETCH_ATTRS" do
- expect(subject.uid).to be_a Integer
- expect(subject.msg_id).to be_a Integer
- expect(subject.thr_id).to be_a Integer
- expect(subject.envelope).to be_a Net::IMAP::Envelope
- expect(subject.message).to be_a Mail::Message
- expect(subject.flags).to be_a Array
- expect(subject.labels).to be_a Array
- end
- end
-
- describe "mocks" do
- subject { Gmail::Message.new(double(:mailbox, :name => 'INBOX'), nil) }
- before { allow_any_instance_of(Gmail::Message).to receive(:fetch).and_return('foo') }
-
- describe "#mark" do
- it "marks itself as read" do
- expect(subject).to receive(:read!).with(no_args).once
- subject.mark(:read)
- end
-
- it "marks itself as unread" do
- expect(subject).to receive(:unread!).with(no_args).once
- subject.mark(:unread)
- end
-
- it "marks itself as deleted" do
- expect(subject).to receive(:delete!).with(no_args).once
- subject.mark(:deleted)
- end
-
- it "marks itself as spam" do
- expect(subject).to receive(:spam!).with(no_args).once
- subject.mark(:spam)
- end
-
- it "marks itself with a flag" do
- expect(subject).to receive(:flag).with(:my_flag).once
- subject.mark(:my_flag)
- end
- end
-
- describe "#read!" do
- it "flags itself as :Seen" do
- expect(subject).to receive(:flag).with(:Seen).once
- subject.read!
- end
- end
-
- describe "#unread!" do
- it "unflags :Seen from itself" do
- expect(subject).to receive(:unflag).with(:Seen).once
- subject.unread!
- end
- end
-
- describe "#star!" do
- it "flags itself as '[Gmail]/Starred'" do
- expect(subject).to receive(:flag).with(:Flagged).once
- subject.star!
- end
- end
-
- describe "#unstar!" do
- it "unflags '[Gmail]/Starred' from itself" do
- expect(subject).to receive(:unflag).with(:Flagged).once
- subject.unstar!
- end
- end
-
- describe "#spam!" do
- it "moves itself to the spam folder" do
- expect(subject).to receive(:add_label).with("\\Spam").once
- subject.spam!
- end
- end
-
- describe "#archive!" do
- it "removes itself from the inbox" do
- expect(subject).to receive(:remove_label).with("\\Inbox").once
- subject.archive!
- end
- end
- end
-
- describe "instance methods" do
- let(:client) { mock_client }
- let(:message) { client.mailbox(:all).emails(:unread, :from => TEST_ACCOUNT[0].to_s, :subject => "Hello world!").last }
-
- after { client.logout if client.logged_in? }
-
- it "sets given label" do
- message.add_label 'Awesome'
- message.add_label 'Great'
-
- expect(message.labels).to include("Awesome")
- expect(message.labels).to include("Great")
- expect(message.labels).to include("\\Inbox")
- end
-
- it "removes a given label" do
- message.add_label 'Awesome'
- message.add_label 'Great'
-
- message.remove_label 'Awesome'
- expect(message.labels).not_to include("Awesome")
- expect(message.labels).to include("Great")
- expect(message.labels).to include("\\Inbox")
- expect(message.flags).not_to include(:Seen)
- end
-
- it "sets given label with old method" do
- message.label! 'Awesome'
- message.label! 'Great'
- expect(message.labels).to include("Great")
- expect(message.labels).to include("Awesome")
- expect(message.labels).to include("\\Inbox")
- end
-
- it "removes a given label with old method" do
- message.add_label 'Awesome'
- message.add_label 'Great'
-
- message.remove_label! 'Awesome'
- expect(message.labels).not_to include("Awesome")
- expect(message.labels).to include("Great")
- expect(message.labels).to include("\\Inbox")
- expect(message.flags).not_to include(:Seen)
- end
-
- it "moves from one tag to other" do
- message.add_label 'Awesome'
- message.remove_label 'Great'
-
- message.move_to('Great', 'Awesome')
- expect(message.labels).to include("Great")
- expect(message.labels).not_to include("Awesome")
- expect(message.labels).to include("\\Inbox")
- end
-
- it "marks itself read" do
- message.mark(:unread)
-
- message.mark(:read)
- expect(message.flags).to include(:Seen)
- end
-
- it "marks itself unread" do
- message.mark(:read)
-
- message.mark(:unread)
- expect(message.flags).not_to include(:Seen)
- end
-
- it "deletes itself" do
- trash_count = client.mailbox(:trash).emails.count
-
- message.delete!
-
- expect(client.mailbox(:trash).emails.count).to eq(trash_count + 1)
- end
- end
-end
+require 'spec_helper'
+
+describe Gmail::Message do
+ describe "initialize" do
+ let(:client) { mock_client }
+ let(:mailbox) { client.mailbox(:all) }
+
+ subject do
+ mailbox.emails.first
+ end
+
+ it "sets uid and mailbox" do
+ expect(subject.instance_variable_get(:@mailbox)).to be_a Gmail::Mailbox
+ expect(subject.instance_variable_get(:@gmail)).to be_a Gmail::Client::Base
+ expect(subject.instance_variable_get(:@uid)).to be_a Integer
+ subject.labels
+ end
+
+ it "sets PREFETCH_ATTRS" do
+ expect(subject.uid).to be_a Integer
+ expect(subject.msg_id).to be_a Integer
+ expect(subject.thr_id).to be_a Integer
+ expect(subject.envelope).to be_a Net::IMAP::Envelope
+ expect(subject.message).to be_a Mail::Message
+ expect(subject.flags).to be_a Array
+ expect(subject.labels).to be_a Array
+ end
+ end
+
+ describe "mocks" do
+ subject { Gmail::Message.new(double(:mailbox, :name => 'INBOX'), nil) }
+ before { allow_any_instance_of(Gmail::Message).to receive(:fetch).and_return('foo') }
+
+ describe "#mark" do
+ it "marks itself as read" do
+ expect(subject).to receive(:read!).with(no_args).once
+ subject.mark(:read)
+ end
+
+ it "marks itself as unread" do
+ expect(subject).to receive(:unread!).with(no_args).once
+ subject.mark(:unread)
+ end
+
+ it "marks itself as deleted" do
+ expect(subject).to receive(:delete!).with(no_args).once
+ subject.mark(:deleted)
+ end
+
+ it "marks itself as spam" do
+ expect(subject).to receive(:spam!).with(no_args).once
+ subject.mark(:spam)
+ end
+
+ it "marks itself with a flag" do
+ expect(subject).to receive(:flag).with(:my_flag).once
+ subject.mark(:my_flag)
+ end
+ end
+
+ describe "#read!" do
+ it "flags itself as :Seen" do
+ expect(subject).to receive(:flag).with(:Seen).once
+ subject.read!
+ end
+ end
+
+ describe "#unread!" do
+ it "unflags :Seen from itself" do
+ expect(subject).to receive(:unflag).with(:Seen).once
+ subject.unread!
+ end
+ end
+
+ describe "#star!" do
+ it "flags itself as '[Gmail]/Starred'" do
+ expect(subject).to receive(:flag).with(:Flagged).once
+ subject.star!
+ end
+ end
+
+ describe "#unstar!" do
+ it "unflags '[Gmail]/Starred' from itself" do
+ expect(subject).to receive(:unflag).with(:Flagged).once
+ subject.unstar!
+ end
+ end
+
+ describe "#spam!" do
+ it "moves itself to the spam folder" do
+ expect(subject).to receive(:add_label).with("\\Spam").once
+ subject.spam!
+ end
+ end
+
+ describe "#archive!" do
+ it "removes itself from the inbox" do
+ expect(subject).to receive(:remove_label).with("\\Inbox").once
+ subject.archive!
+ end
+ end
+ end
+
+ describe "instance methods" do
+ let(:client) { mock_client }
+ let(:message) { client.mailbox(:all).emails(:unread, :from => TEST_ACCOUNT[0].to_s, :subject => "Hello world!").last }
+
+ after { client.logout if client.logged_in? }
+
+ it "sets given label" do
+ message.add_label 'Awesome'
+ message.add_label 'Great'
+
+ expect(message.labels).to include("Awesome")
+ expect(message.labels).to include("Great")
+ expect(message.labels).to include("\\Inbox")
+ end
+
+ it "removes a given label" do
+ message.add_label 'Awesome'
+ message.add_label 'Great'
+
+ message.remove_label 'Awesome'
+ expect(message.labels).not_to include("Awesome")
+ expect(message.labels).to include("Great")
+ expect(message.labels).to include("\\Inbox")
+ expect(message.flags).not_to include(:Seen)
+ end
+
+ it "sets given label with old method" do
+ message.label! 'Awesome'
+ message.label! 'Great'
+ expect(message.labels).to include("Great")
+ expect(message.labels).to include("Awesome")
+ expect(message.labels).to include("\\Inbox")
+ end
+
+ it "removes a given label with old method" do
+ message.add_label 'Awesome'
+ message.add_label 'Great'
+
+ message.remove_label! 'Awesome'
+ expect(message.labels).not_to include("Awesome")
+ expect(message.labels).to include("Great")
+ expect(message.labels).to include("\\Inbox")
+ expect(message.flags).not_to include(:Seen)
+ end
+
+ it "moves from one tag to other" do
+ message.add_label 'Awesome'
+ message.remove_label 'Great'
+
+ message.move_to('Great', 'Awesome')
+ expect(message.labels).to include("Great")
+ expect(message.labels).not_to include("Awesome")
+ expect(message.labels).to include("\\Inbox")
+ end
+
+ it "marks itself read" do
+ message.mark(:unread)
+
+ message.mark(:read)
+ expect(message.flags).to include(:Seen)
+ end
+
+ it "marks itself unread" do
+ message.mark(:read)
+
+ message.mark(:unread)
+ expect(message.flags).not_to include(:Seen)
+ end
+
+ it "deletes itself" do
+ trash_count = client.mailbox(:trash).emails.count
+
+ message.delete!
+
+ expect(client.mailbox(:trash).emails.count).to eq(trash_count + 1)
+ end
+ end
+end