code.gitea.io/gitea@v1.21.7/routers/web/repo/view_test.go (about)

     1  // Copyright 2017 The Gitea Authors. All rights reserved.
     2  // Copyright 2014 The Gogs Authors. All rights reserved.
     3  // SPDX-License-Identifier: MIT
     4  
     5  package repo
     6  
     7  import (
     8  	"reflect"
     9  	"testing"
    10  )
    11  
    12  func Test_localizedExtensions(t *testing.T) {
    13  	tests := []struct {
    14  		name              string
    15  		ext               string
    16  		languageCode      string
    17  		wantLocalizedExts []string
    18  	}{
    19  		{
    20  			name:              "empty language",
    21  			ext:               ".md",
    22  			wantLocalizedExts: []string{".md"},
    23  		},
    24  		{
    25  			name:              "No region - lowercase",
    26  			languageCode:      "en",
    27  			ext:               ".csv",
    28  			wantLocalizedExts: []string{".en.csv", ".csv"},
    29  		},
    30  		{
    31  			name:              "No region - uppercase",
    32  			languageCode:      "FR",
    33  			ext:               ".txt",
    34  			wantLocalizedExts: []string{".fr.txt", ".txt"},
    35  		},
    36  		{
    37  			name:              "With region - lowercase",
    38  			languageCode:      "en-us",
    39  			ext:               ".md",
    40  			wantLocalizedExts: []string{".en-us.md", ".en_us.md", ".en.md", "_en.md", ".md"},
    41  		},
    42  		{
    43  			name:              "With region - uppercase",
    44  			languageCode:      "en-CA",
    45  			ext:               ".MD",
    46  			wantLocalizedExts: []string{".en-ca.MD", ".en_ca.MD", ".en.MD", "_en.MD", ".MD"},
    47  		},
    48  		{
    49  			name:              "With region - all uppercase",
    50  			languageCode:      "ZH-TW",
    51  			ext:               ".md",
    52  			wantLocalizedExts: []string{".zh-tw.md", ".zh_tw.md", ".zh.md", "_zh.md", ".md"},
    53  		},
    54  	}
    55  	for _, tt := range tests {
    56  		t.Run(tt.name, func(t *testing.T) {
    57  			if gotLocalizedExts := localizedExtensions(tt.ext, tt.languageCode); !reflect.DeepEqual(gotLocalizedExts, tt.wantLocalizedExts) {
    58  				t.Errorf("localizedExtensions() = %v, want %v", gotLocalizedExts, tt.wantLocalizedExts)
    59  			}
    60  		})
    61  	}
    62  }