diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
index d5f50d0..e68f1b5 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityCreateAccessCheckTest.php
@@ -10,6 +10,7 @@
 use Drupal\Core\Access\AccessCheckInterface;
 use Drupal\Core\Entity\EntityCreateAccessCheck;
 use Drupal\Tests\UnitTestCase;
+use Symfony\Component\DependencyInjection\ParameterBag\ParameterBag;
 use Symfony\Component\HttpFoundation\Request;
 
 /**
@@ -65,6 +66,12 @@ public function providerTestAccess() {
       array('', 'entity_test',TRUE, AccessCheckInterface::ALLOW),
       array('test_entity', 'entity_test:test_entity', TRUE, AccessCheckInterface::ALLOW),
       array('test_entity', 'entity_test:test_entity', FALSE, AccessCheckInterface::DENY),
+      array('test_entity', 'entity_test:{bundle_argument}', TRUE, AccessCheckInterface::ALLOW),
+      array('test_entity', 'entity_test:{bundle_argument}', FALSE, AccessCheckInterface::DENY),
+      array('', 'entity_test:{bundle_argument}', FALSE, AccessCheckInterface::DENY),
+      // When the bundle is not provided, access should be denied even if the
+      // access controller would allow access.
+      array('', 'entity_test:{bundle_argument}',TRUE, AccessCheckInterface::DENY),
     );
   }
 
@@ -74,23 +81,23 @@ public function providerTestAccess() {
    * @dataProvider providerTestAccess
    */
   public function testAccess($entity_bundle, $requirement, $access, $expected) {
-    $entity = $this->getMockBuilder('Drupal\Core\Entity\Entity')
-      ->disableOriginalConstructor()
-      ->getMock();
-
     $entity_manager = $this->getMockBuilder('Drupal\Core\Entity\EntityManager')
       ->disableOriginalConstructor()
       ->getMock();
 
-    $access_controller = $this->getMock('Drupal\Core\Entity\EntityAccessControllerInterface');
-    $access_controller->expects($this->once())
-      ->method('createAccess')
-      ->with($entity_bundle)
-      ->will($this->returnValue($access));
+    // Don't expect a call to the access controller when we have a bundle
+    // argument requirement but no bundle is provided.
+    if ($entity_bundle || strpos($requirement, '{') === FALSE) {
+      $access_controller = $this->getMock('Drupal\Core\Entity\EntityAccessControllerInterface');
+      $access_controller->expects($this->once())
+        ->method('createAccess')
+        ->with($entity_bundle)
+        ->will($this->returnValue($access));
 
-    $entity_manager->expects($this->any())
-      ->method('getAccessController')
-      ->will($this->returnValue($access_controller));
+      $entity_manager->expects($this->any())
+        ->method('getAccessController')
+        ->will($this->returnValue($access_controller));
+    }
 
     $applies_check = new EntityCreateAccessCheck($entity_manager);
 
@@ -103,6 +110,13 @@ public function testAccess($entity_bundle, $requirement, $access, $expected) {
       ->will($this->returnValue($requirement));
 
     $request = new Request();
+    $raw_variables = new ParameterBag();
+    if ($entity_bundle) {
+      // Add the bundle as a raw variable and an upcasted attribute.
+      $request->attributes->set('bundle_argument', new \stdClass());
+      $raw_variables->set('bundle_argument', $entity_bundle);
+    }
+    $request->attributes->set('_raw_variables', $raw_variables);
 
     $this->assertEquals($expected, $applies_check->access($route, $request));
   }
