diff --git a/core/modules/user/tests/modules/user_form_test/lib/Drupal/user_form_test/Form/TestCurrentPassword.php b/core/modules/user/tests/modules/user_form_test/lib/Drupal/user_form_test/Form/TestCurrentPassword.php
new file mode 100644
index 0000000..a1ec8db
--- /dev/null
+++ b/core/modules/user/tests/modules/user_form_test/lib/Drupal/user_form_test/Form/TestCurrentPassword.php
@@ -0,0 +1,75 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\user_form_test\Form\TestCurrentPassword.
+ */
+
+namespace Drupal\user_form_test\Form;
+
+use Drupal\Core\Form\FormInterface;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Base class for implementing system configuration forms.
+ */
+class TestCurrentPassword implements FormInterface {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function getFormID() {
+    return 'user_form_test_current_password';
+  }
+
+  /**
+   * {@inheritdoc}
+   *
+   * @param Drupal\user\Plugin\Core\Entity\User $account
+   *   The user account.
+   */
+  public function buildForm(array $form, array &$form_state, AccountInterface $account = NULL) {
+    $user = user_load($account->id());
+    $user->user_form_test_field = '';
+    $form_state['user'] = $user ;
+    $form['user_form_test_field'] = array(
+      '#type' => 'textfield',
+      '#title' => t('Test field'),
+      '#description' => t('A field that would require a correct password to change.'),
+      '#required' => TRUE,
+    );
+
+    $form['current_pass'] = array(
+      '#type' => 'password',
+      '#title' => t('Current password'),
+      '#size' => 25,
+      '#description' => t('Enter your current password'),
+    );
+
+    $form['current_pass_required_values'] = array(
+      '#type' => 'value',
+      '#value' => array('user_form_test_field' => t('Test field')),
+    );
+
+    $form['#validate'][] = 'user_validate_current_pass';
+    $form['submit'] = array(
+      '#type' => 'submit',
+      '#value' => t('Test'),
+    );
+    return $form;
+  }
+
+  /**
+   * Implements \Drupal\Core\Form\FormInterface::validateForm().
+   */
+  public function validateForm(array &$form, array &$form_state) {
+  }
+
+  /**
+   * Implements \Drupal\Core\Form\FormInterface::submitForm().
+   */
+  public function submitForm(array &$form, array &$form_state) {
+    drupal_set_message(t('The password has been validated and the form submitted successfully.'));
+  }
+
+}
diff --git a/core/modules/user/tests/modules/user_form_test/user_form_test.module b/core/modules/user/tests/modules/user_form_test/user_form_test.module
index 5702c53..fddedbf 100644
--- a/core/modules/user/tests/modules/user_form_test/user_form_test.module
+++ b/core/modules/user/tests/modules/user_form_test/user_form_test.module
@@ -14,51 +14,8 @@ function user_form_test_menu() {
   $items = array();
   $items['user_form_test_current_password/%user'] = array(
     'title' => 'User form test for current password validation',
-    'page callback' => 'drupal_get_form',
-    'page arguments' => array('user_form_test_current_password',1),
-    'access arguments' => array('administer users'),
+    'route_name' => 'user_form_test_current_password',
     'type' => MENU_SUGGESTED_ITEM,
   );
   return $items;
 }
-
-/**
- * A test form for user_validate_current_pass().
- */
-function user_form_test_current_password($form, &$form_state, $account) {
-  $account->user_form_test_field = '';
-  $form_state['user'] = $account;
-
-  $form['user_form_test_field'] = array(
-    '#type' => 'textfield',
-    '#title' => t('Test field'),
-    '#description' => t('A field that would require a correct password to change.'),
-    '#required' => TRUE,
-  );
-
-  $form['current_pass'] = array(
-    '#type' => 'password',
-    '#title' => t('Current password'),
-    '#size' => 25,
-    '#description' => t('Enter your current password'),
-  );
-
-  $form['current_pass_required_values'] = array(
-    '#type' => 'value',
-    '#value' => array('user_form_test_field' => t('Test field')),
-  );
-
-  $form['#validate'][] = 'user_validate_current_pass';
-  $form['submit'] = array(
-    '#type' => 'submit',
-    '#value' => t('Test'),
-  );
-  return $form;
-}
-
-/**
- * Submit function for the test form for user_validate_current_pass().
- */
-function user_form_test_current_password_submit($form, &$form_state) {
-  drupal_set_message(t('The password has been validated and the form submitted successfully.'));
-}
diff --git a/core/modules/user/tests/modules/user_form_test/user_form_test.routing.yml b/core/modules/user/tests/modules/user_form_test/user_form_test.routing.yml
new file mode 100644
index 0000000..841fbc5
--- /dev/null
+++ b/core/modules/user/tests/modules/user_form_test/user_form_test.routing.yml
@@ -0,0 +1,9 @@
+user_form_test_current_password:
+  pattern: '/user_form_test_current_password/{user}'
+  defaults:
+    _form: '\Drupal\user_form_test\Form\TestCurrentPassword'
+  requirements:
+    _permission: 'administer users'
+  options:
+    converters:
+      user: 'user'
