You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by am...@apache.org on 2021/05/06 14:20:17 UTC
[couchdb-fauxton] branch main updated: Properly encode doc link on
Changes page
This is an automated email from the ASF dual-hosted git repository.
amaranhao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb-fauxton.git
The following commit(s) were added to refs/heads/main by this push:
new 8b63eb1 Properly encode doc link on Changes page
new 114e0d9 Merge pull request #1314 from Antonio-Maranhao/fix-link-changes-page
8b63eb1 is described below
commit 8b63eb1b574801a572b7cc7ed868bc8c94e28cc5
Author: Antonio Maranhao <an...@gmail.com>
AuthorDate: Wed May 5 12:02:50 2021 -0400
Properly encode doc link on Changes page
URL encode the doc ID and database name when generating the URL
on the Changes page.
---
app/addons/documents/__tests__/changes.test.js | 11 +++++++++++
app/addons/documents/changes/components/ChangeID.js | 2 +-
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/app/addons/documents/__tests__/changes.test.js b/app/addons/documents/__tests__/changes.test.js
index 6723f3c..6e0ce29 100644
--- a/app/addons/documents/__tests__/changes.test.js
+++ b/app/addons/documents/__tests__/changes.test.js
@@ -183,4 +183,15 @@ describe('ChangeRow', () => {
const changeRow = mount(<ChangeRow change={change} databaseName="testDatabase" />);
expect(changeRow.find('a.js-doc-link').length).toBe(1);
});
+
+ it('generates correct URL for doc and db with special chars', () => {
+ const changeSpecialChars = {
+ id: 'space newline\nquestion_mark?',
+ seq: 5,
+ deleted: false,
+ changes: { code: 'here' }
+ };
+ const changeRow = mount(<ChangeRow change={changeSpecialChars} databaseName="db/name" />);
+ expect(changeRow.find('a.js-doc-link').at(0).prop('href')).toBe('#/database/db%2Fname/space%20newline%0Aquestion_mark%3F');
+ });
});
diff --git a/app/addons/documents/changes/components/ChangeID.js b/app/addons/documents/changes/components/ChangeID.js
index 79c8a33..6a2b1a4 100644
--- a/app/addons/documents/changes/components/ChangeID.js
+++ b/app/addons/documents/changes/components/ChangeID.js
@@ -21,7 +21,7 @@ export default class ChangeID extends React.Component {
<span className="js-doc-id">{id}</span>
);
}
- const link = '#' + FauxtonAPI.urls('document', 'app', databaseName, id);
+ const link = '#' + FauxtonAPI.urls('document', 'app', encodeURIComponent(databaseName), encodeURIComponent(id));
return (
<a href={link} className="js-doc-link">{id}</a>
);