// User names can have quotes and plus signs so we should ensure that URL
// altering works with this.
$account =
$this->
drupalCreateUser(['administer url aliases'
], "it's+bar"
);
$this->
drupalLogin($account);
$uid =
$account->
id();
$name =
$account->
getAccountName();
// Test a single altered path.
$this->
drupalGet("user/
$name"
);
$this->
assertSession()->
statusCodeEquals(200
);
$this->
assertUrlOutboundAlter("/user/
$uid", "/user/
$name"
);
// Test that a path always uses its alias.
$this->
createPathAlias("/user/
$uid/test1", '/alias/test1'
);
$this->
rebuildContainer();
$this->
assertUrlInboundAlter('/alias/test1', "/user/
$uid/test1"
);
$this->
assertUrlOutboundAlter("/user/
$uid/test1", '/alias/test1'
);
// Test adding an alias via the UI.
$edit =
['path[0][value]' => "/user/
$uid/edit", 'alias[0][value]' => '/alias/test2'
];
$this->
drupalGet('admin/config/search/path/add'
);
$this->
submitForm($edit, 'Save'
);