diff --git a/core/modules/node/node.module b/core/modules/node/node.module
index d0a7bcf..452be40 100644
--- a/core/modules/node/node.module
+++ b/core/modules/node/node.module
@@ -1377,3 +1377,10 @@ function node_comment_delete($comment) {
     node_reindex_node_search($comment->getCommentedEntityId());
   }
 }
+
+/**
+ * Implements hook_node_grants().
+ */
+function node_node_grants(\Drupal\Core\Session\AccountInterface $account, $op) {
+
+}
diff --git a/core/modules/node/src/Tests/NodeAccessGrantsTest.php b/core/modules/node/src/Tests/NodeAccessGrantsTest.php
new file mode 100644
index 0000000..e98aefd
--- /dev/null
+++ b/core/modules/node/src/Tests/NodeAccessGrantsTest.php
@@ -0,0 +1,48 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\node\Tests\NodeAccessGrantsTest.
+ */
+
+namespace Drupal\node\Tests;
+
+use Drupal\node\NodeInterface;
+use Drupal\user\RoleInterface;
+
+/**
+ * Tests basic node_access functionality with one implementation of hook_node_grants().
+ *
+ * @group node
+ */
+class NodeAccessGrantsTest extends NodeTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('node', 'datetime', 'node_access_test_2');
+
+  protected function setUp() {
+    parent::setUp();
+    // Clear permissions for authenticated users.
+    $this->config('user.role.' . RoleInterface::AUTHENTICATED_ID)->set('permissions', array())->save();
+  }
+
+  /**
+   * Runs basic tests for node_access function.
+   */
+  function testNodeAccess() {
+    // Ensures user without 'access content' permission can do nothing.
+    $web_user1 = $this->drupalCreateUser(array('create page content', 'edit any page content', 'delete any page content'));
+    $node1 = $this->drupalCreateNode(array('type' => 'page'));
+    $this->assertNodeCreateAccess($node1->bundle(), FALSE, $web_user1);
+    $this->assertNodeAccess(array('view' => FALSE, 'update' => FALSE, 'delete' => FALSE), $node1, $web_user1);
+
+    $this->assertTrue($node1->access('view', $web_user1), 'User has view access.');
+    $this->assertTrue($node1->access('update', $web_user1), 'User has edit access.');
+    $this->assertTrue($node1->access('delete', $web_user1), 'User has delete access.');
+  }
+
+}
diff --git a/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.info.yml b/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.info.yml
new file mode 100644
index 0000000..f3a5c14
--- /dev/null
+++ b/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.info.yml
@@ -0,0 +1,6 @@
+name: 'Node module access tests 2'
+type: module
+description: 'Support module for node permission testing.'
+package: Testing
+version: VERSION
+core: 8.x
diff --git a/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.module b/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.module
new file mode 100644
index 0000000..63e498c
--- /dev/null
+++ b/core/modules/node/tests/modules/node_access_test_2/node_access_test_2.module
@@ -0,0 +1,8 @@
+<?php
+
+/**
+ * Implements hook_node_grants().
+ */
+function node_access_test_2_node_grants(\Drupal\Core\Session\AccountInterface $account, $op) {
+  // Empty implementation
+}
