diff options
author | 2021-11-22 11:49:11 +0100 | |
---|---|---|
committer | 2021-11-22 11:49:11 +0100 | |
commit | 24f9e1122111a73fbd49c46e0f137ddb0f5d45eb (patch) | |
tree | 1b0ef83ac79ec13bdb015837f05d1144a293a333 /internal/text/caption_test.go | |
parent | add bindAddress configuration option (#320) (diff) | |
download | gotosocial-24f9e1122111a73fbd49c46e0f137ddb0f5d45eb.tar.xz |
Fix image description unnecessarily html-escaping innocent characters (#321)
* implement SanitizeCaption function
* tidy up text test setup
Diffstat (limited to 'internal/text/caption_test.go')
-rw-r--r-- | internal/text/caption_test.go | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/internal/text/caption_test.go b/internal/text/caption_test.go new file mode 100644 index 000000000..794c82bf5 --- /dev/null +++ b/internal/text/caption_test.go @@ -0,0 +1,82 @@ +/* + GoToSocial + Copyright (C) 2021 GoToSocial Authors admin@gotosocial.org + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +package text_test + +import ( + "testing" + + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/text" +) + +type CaptionTestSuite struct { + suite.Suite +} + +func (suite *CaptionTestSuite) TestSanitizeCaption1() { + dodgyCaption := "<script>console.log('haha!')</script>this is just a normal caption ;)" + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("this is just a normal caption ;)", sanitized) +} + +func (suite *CaptionTestSuite) TestSanitizeCaption2() { + dodgyCaption := "<em>here's a LOUD caption</em>" + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("here's a LOUD caption", sanitized) +} + +func (suite *CaptionTestSuite) TestSanitizeCaption3() { + dodgyCaption := "" + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("", sanitized) +} + +func (suite *CaptionTestSuite) TestSanitizeCaption4() { + dodgyCaption := ` + + +here is +a multi line +caption +with some newlines + + + +` + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("here is\na multi line\ncaption\nwith some newlines", sanitized) +} + +func (suite *CaptionTestSuite) TestSanitizeCaption5() { + // html-escaped: "<script>console.log('aha!')</script> hello world" + dodgyCaption := `<script>console.log('aha!')</script> hello world` + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("hello world", sanitized) +} + +func (suite *CaptionTestSuite) TestSanitizeCaption6() { + // html-encoded: "<script>console.log('aha!')</script> hello world" + dodgyCaption := `<script>console.log('aha!')</script> hello world` + sanitized := text.SanitizeCaption(dodgyCaption) + suite.Equal("hello world", sanitized) +} + +func TestCaptionTestSuite(t *testing.T) { + suite.Run(t, new(CaptionTestSuite)) +} |