github.com/astaxie/beego@v1.12.3/config_test.go (about) 1 // Copyright 2014 beego Author. All Rights Reserved. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package beego 16 17 import ( 18 "encoding/json" 19 "reflect" 20 "testing" 21 22 "github.com/astaxie/beego/config" 23 ) 24 25 func TestDefaults(t *testing.T) { 26 if BConfig.WebConfig.FlashName != "BEEGO_FLASH" { 27 t.Errorf("FlashName was not set to default.") 28 } 29 30 if BConfig.WebConfig.FlashSeparator != "BEEGOFLASH" { 31 t.Errorf("FlashName was not set to default.") 32 } 33 } 34 35 func TestAssignConfig_01(t *testing.T) { 36 _BConfig := &Config{} 37 _BConfig.AppName = "beego_test" 38 jcf := &config.JSONConfig{} 39 ac, _ := jcf.ParseData([]byte(`{"AppName":"beego_json"}`)) 40 assignSingleConfig(_BConfig, ac) 41 if _BConfig.AppName != "beego_json" { 42 t.Log(_BConfig) 43 t.FailNow() 44 } 45 } 46 47 func TestAssignConfig_02(t *testing.T) { 48 _BConfig := &Config{} 49 bs, _ := json.Marshal(newBConfig()) 50 51 jsonMap := M{} 52 json.Unmarshal(bs, &jsonMap) 53 54 configMap := M{} 55 for k, v := range jsonMap { 56 if reflect.TypeOf(v).Kind() == reflect.Map { 57 for k1, v1 := range v.(M) { 58 if reflect.TypeOf(v1).Kind() == reflect.Map { 59 for k2, v2 := range v1.(M) { 60 configMap[k2] = v2 61 } 62 } else { 63 configMap[k1] = v1 64 } 65 } 66 } else { 67 configMap[k] = v 68 } 69 } 70 configMap["MaxMemory"] = 1024 71 configMap["Graceful"] = true 72 configMap["XSRFExpire"] = 32 73 configMap["SessionProviderConfig"] = "file" 74 configMap["FileLineNum"] = true 75 76 jcf := &config.JSONConfig{} 77 bs, _ = json.Marshal(configMap) 78 ac, _ := jcf.ParseData(bs) 79 80 for _, i := range []interface{}{_BConfig, &_BConfig.Listen, &_BConfig.WebConfig, &_BConfig.Log, &_BConfig.WebConfig.Session} { 81 assignSingleConfig(i, ac) 82 } 83 84 if _BConfig.MaxMemory != 1024 { 85 t.Log(_BConfig.MaxMemory) 86 t.FailNow() 87 } 88 89 if !_BConfig.Listen.Graceful { 90 t.Log(_BConfig.Listen.Graceful) 91 t.FailNow() 92 } 93 94 if _BConfig.WebConfig.XSRFExpire != 32 { 95 t.Log(_BConfig.WebConfig.XSRFExpire) 96 t.FailNow() 97 } 98 99 if _BConfig.WebConfig.Session.SessionProviderConfig != "file" { 100 t.Log(_BConfig.WebConfig.Session.SessionProviderConfig) 101 t.FailNow() 102 } 103 104 if !_BConfig.Log.FileLineNum { 105 t.Log(_BConfig.Log.FileLineNum) 106 t.FailNow() 107 } 108 109 } 110 111 func TestAssignConfig_03(t *testing.T) { 112 jcf := &config.JSONConfig{} 113 ac, _ := jcf.ParseData([]byte(`{"AppName":"beego"}`)) 114 ac.Set("AppName", "test_app") 115 ac.Set("RunMode", "online") 116 ac.Set("StaticDir", "download:down download2:down2") 117 ac.Set("StaticExtensionsToGzip", ".css,.js,.html,.jpg,.png") 118 ac.Set("StaticCacheFileSize", "87456") 119 ac.Set("StaticCacheFileNum", "1254") 120 assignConfig(ac) 121 122 t.Logf("%#v", BConfig) 123 124 if BConfig.AppName != "test_app" { 125 t.FailNow() 126 } 127 128 if BConfig.RunMode != "online" { 129 t.FailNow() 130 } 131 if BConfig.WebConfig.StaticDir["/download"] != "down" { 132 t.FailNow() 133 } 134 if BConfig.WebConfig.StaticDir["/download2"] != "down2" { 135 t.FailNow() 136 } 137 if BConfig.WebConfig.StaticCacheFileSize != 87456 { 138 t.FailNow() 139 } 140 if BConfig.WebConfig.StaticCacheFileNum != 1254 { 141 t.FailNow() 142 } 143 if len(BConfig.WebConfig.StaticExtensionsToGzip) != 5 { 144 t.FailNow() 145 } 146 }