Sanitize names rendered in the channel tree
This commit is contained in:
committed by
Brandon McGinty
parent
cc62f8e4a7
commit
5480dee0fd
@@ -55,6 +55,15 @@ func TestNotificationExpansionIsSinglePassAndNotifyDoesNotBlock(t *testing.T) {
|
|||||||
|
|
||||||
// Regression: reconnect replaced Stream without destroying the old capture
|
// Regression: reconnect replaced Stream without destroying the old capture
|
||||||
// and renderer resources. Cleanup must be safe for repeated disconnects.
|
// and renderer resources. Cleanup must be safe for repeated disconnects.
|
||||||
|
// Regression: user and channel names in the navigation tree bypassed message
|
||||||
|
// escaping and could still carry terminal control characters.
|
||||||
|
func TestTreeItemSanitizesServerNames(t *testing.T) {
|
||||||
|
item := TreeItem{Channel: &gumble.Channel{Name: "\x1b[2Jroom"}}
|
||||||
|
if got := item.String(); got != "#[2Jroom" {
|
||||||
|
t.Fatalf("got %q", got)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestCleanupConnectionAudioIsIdempotent(t *testing.T) {
|
func TestCleanupConnectionAudioIsIdempotent(t *testing.T) {
|
||||||
b := &Barnard{}
|
b := &Barnard{}
|
||||||
b.cleanupConnectionAudio()
|
b.cleanupConnectionAudio()
|
||||||
|
|||||||
+3
-3
@@ -10,15 +10,15 @@ import (
|
|||||||
func (ti TreeItem) String() string {
|
func (ti TreeItem) String() string {
|
||||||
if ti.User != nil {
|
if ti.User != nil {
|
||||||
if ti.User.LocallyMuted() {
|
if ti.User.LocallyMuted() {
|
||||||
return "[MUTED] " + ti.User.Name
|
return "[MUTED] " + esc(ti.User.Name)
|
||||||
}
|
}
|
||||||
// Calculate total volume as percentage
|
// Calculate total volume as percentage
|
||||||
boostPercent := float32(ti.User.Boost()-1) * 10
|
boostPercent := float32(ti.User.Boost()-1) * 10
|
||||||
totalVolume := ti.User.Volume()*100 + boostPercent
|
totalVolume := ti.User.Volume()*100 + boostPercent
|
||||||
return fmt.Sprintf("%s [%.0f%%]", ti.User.Name, totalVolume)
|
return fmt.Sprintf("%s [%.0f%%]", esc(ti.User.Name), totalVolume)
|
||||||
}
|
}
|
||||||
if ti.Channel != nil {
|
if ti.Channel != nil {
|
||||||
return "#" + ti.Channel.Name
|
return "#" + esc(ti.Channel.Name)
|
||||||
}
|
}
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user