diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb
index 4edce3cc5a5a9877292a4e11ef04fef12ec2bbea..b605908b793aa222f395ce7f564ad58e30e238b0 100644
--- a/Library/Homebrew/cask/audit.rb
+++ b/Library/Homebrew/cask/audit.rb
@@ -16,7 +16,7 @@ module Cask
 
     attr_reader :cask, :download
 
-    attr_predicate :appcast?, :new_cask?, :strict?, :online?
+    attr_predicate :appcast?, :new_cask?, :strict?, :online?, :token_conflicts?
 
     def initialize(cask, appcast: nil, download: nil, quarantine: nil,
                    token_conflicts: nil, online: nil, strict: nil,
@@ -355,7 +355,7 @@ module Cask
     end
 
     def check_token_conflicts
-      return unless @token_conflicts
+      return unless token_conflicts?
       return unless core_formula_names.include?(cask.token)
 
       add_warning "possible duplicate, cask token conflicts with Homebrew core formula: #{core_formula_url}"
diff --git a/Library/Homebrew/test/cask/audit_spec.rb b/Library/Homebrew/test/cask/audit_spec.rb
index 803865054fbe85b55d3c9f6feeb5ab99193645a5..db741fd133b9c3612ca1789e88ff44193be3a47e 100644
--- a/Library/Homebrew/test/cask/audit_spec.rb
+++ b/Library/Homebrew/test/cask/audit_spec.rb
@@ -30,17 +30,52 @@ describe Cask::Audit, :cask do
   end
 
   let(:cask) { instance_double(Cask::Cask) }
-  let(:download) { false }
-  let(:token_conflicts) { false }
-  let(:strict) { false }
-  let(:new_cask) { false }
+  let(:new_cask) { nil }
+  let(:online) { nil }
+  let(:strict) { nil }
+  let(:token_conflicts) { nil }
   let(:audit) {
-    described_class.new(cask, download:        download,
-                              token_conflicts: token_conflicts,
+    described_class.new(cask, online:          online,
+
                               strict:          strict,
-                              new_cask:        new_cask)
+                              new_cask:        new_cask,
+                              token_conflicts: token_conflicts)
   }
 
+  describe "#new" do
+    context "when `new_cask` is specified" do
+      let(:new_cask) { true }
+
+      it "implies `online`" do
+        expect(audit).to be_online
+      end
+
+      it "implies `strict`" do
+        expect(audit).to be_strict
+      end
+    end
+
+    context "when `online` is specified" do
+      let(:online) { true }
+
+      it "implies `appcast`" do
+        expect(audit.appcast?).to be true
+      end
+
+      it "implies `download`" do
+        expect(audit.download).to be_truthy
+      end
+    end
+
+    context "when `strict` is specified" do
+      let(:strict) { true }
+
+      it "implies `token_conflicts`" do
+        expect(audit.token_conflicts?).to be true
+      end
+    end
+  end
+
   describe "#result" do
     subject { audit.result }