Commit 7fdfdb1

mokha <mokha@cisco.com>
2019-03-05 23:01:54
add specs for auth plain and auth login
1 parent b4a1809
Changed files (3)
lib/minbox/client.rb
@@ -102,12 +102,12 @@ module Minbox
         write '334 UGFzc3dvcmQ6'
       else
         write '334 UGFzc3dvcmQ6'
-        password = Base64.decode64(read)
-        logger.debug("#{username}:#{password}")
-
-        return write '535 Authenticated failed - protocol error' unless username && password
-        write "235 2.7.0 Authentication successful"
       end
+      password = Base64.decode64(read)
+      logger.debug("#{username}:#{password}")
+
+      return write '535 Authenticated failed - protocol error' unless username && password
+      write "235 2.7.0 Authentication successful"
     end
 
     def write(message)
spec/minbox/server_spec.rb
@@ -38,6 +38,33 @@ RSpec.describe Minbox::Server do
 
         specify { expect(result).to eql(n) }
       end
+
+      context "with plain authentication" do
+        let(:result) do
+          Net::SMTP.start(host, port, 'mail.from.domain', 'username', 'password', :plain) do |smtp|
+            smtp.send_message(create_mail.to_s, Faker::Internet.email, Faker::Internet.email)
+          end
+        end
+
+        specify { expect(result).to be_success }
+        specify { expect(result.status.to_i).to eql(250) }
+      end
+
+      context "with login authentication" do
+        let(:result) do
+          Net::SMTP.start(host, port, 'mail.from.domain', 'username', 'password', :login) do |smtp|
+            smtp.send_message(create_mail.to_s, Faker::Internet.email, Faker::Internet.email)
+          end
+        end
+
+        specify { expect(result).to be_success }
+        specify { expect(result.status.to_i).to eql(250) }
+      end
+
+      context "with a text/html part" do
+
+      end
+
     end
   end
 end
spec/minbox_spec.rb
@@ -1,9 +1,3 @@
 RSpec.describe Minbox do
-  it "has a version number" do
-    expect(Minbox::VERSION).not_to be nil
-  end
-
-  it "does something useful" do
-    expect(false).to eq(true)
-  end
+  specify { expect(Minbox::VERSION).not_to be_nil }
 end