139 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			139 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Copyright 2014 beego Author. All Rights Reserved.
 | 
						|
//
 | 
						|
// Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
// you may not use this file except in compliance with the License.
 | 
						|
// You may obtain a copy of the License at
 | 
						|
//
 | 
						|
//      http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
//
 | 
						|
// Unless required by applicable law or agreed to in writing, software
 | 
						|
// distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
// See the License for the specific language governing permissions and
 | 
						|
// limitations under the License.
 | 
						|
 | 
						|
package beego
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/json"
 | 
						|
	"reflect"
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/astaxie/beego/config"
 | 
						|
)
 | 
						|
 | 
						|
func TestDefaults(t *testing.T) {
 | 
						|
	if BConfig.WebConfig.FlashName != "BEEGO_FLASH" {
 | 
						|
		t.Errorf("FlashName was not set to default.")
 | 
						|
	}
 | 
						|
 | 
						|
	if BConfig.WebConfig.FlashSeparator != "BEEGOFLASH" {
 | 
						|
		t.Errorf("FlashName was not set to default.")
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestAssignConfig_01(t *testing.T) {
 | 
						|
	_BConfig := &Config{}
 | 
						|
	_BConfig.AppName = "beego_test"
 | 
						|
	jcf := &config.JSONConfig{}
 | 
						|
	ac, _ := jcf.ParseData([]byte(`{"AppName":"beego_json"}`))
 | 
						|
	assignSingleConfig(_BConfig, ac)
 | 
						|
	if _BConfig.AppName != "beego_json" {
 | 
						|
		t.Log(_BConfig)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestAssignConfig_02(t *testing.T) {
 | 
						|
	_BConfig := &Config{}
 | 
						|
	bs, _ := json.Marshal(newBConfig())
 | 
						|
 | 
						|
	jsonMap := M{}
 | 
						|
	json.Unmarshal(bs, &jsonMap)
 | 
						|
 | 
						|
	configMap := M{}
 | 
						|
	for k, v := range jsonMap {
 | 
						|
		if reflect.TypeOf(v).Kind() == reflect.Map {
 | 
						|
			for k1, v1 := range v.(M) {
 | 
						|
				if reflect.TypeOf(v1).Kind() == reflect.Map {
 | 
						|
					for k2, v2 := range v1.(M) {
 | 
						|
						configMap[k2] = v2
 | 
						|
					}
 | 
						|
				} else {
 | 
						|
					configMap[k1] = v1
 | 
						|
				}
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			configMap[k] = v
 | 
						|
		}
 | 
						|
	}
 | 
						|
	configMap["MaxMemory"] = 1024
 | 
						|
	configMap["Graceful"] = true
 | 
						|
	configMap["XSRFExpire"] = 32
 | 
						|
	configMap["SessionProviderConfig"] = "file"
 | 
						|
	configMap["FileLineNum"] = true
 | 
						|
 | 
						|
	jcf := &config.JSONConfig{}
 | 
						|
	bs, _ = json.Marshal(configMap)
 | 
						|
	ac, _ := jcf.ParseData(bs)
 | 
						|
 | 
						|
	for _, i := range []interface{}{_BConfig, &_BConfig.Listen, &_BConfig.WebConfig, &_BConfig.Log, &_BConfig.WebConfig.Session} {
 | 
						|
		assignSingleConfig(i, ac)
 | 
						|
	}
 | 
						|
 | 
						|
	if _BConfig.MaxMemory != 1024 {
 | 
						|
		t.Log(_BConfig.MaxMemory)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
	if !_BConfig.Listen.Graceful {
 | 
						|
		t.Log(_BConfig.Listen.Graceful)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
	if _BConfig.WebConfig.XSRFExpire != 32 {
 | 
						|
		t.Log(_BConfig.WebConfig.XSRFExpire)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
	if _BConfig.WebConfig.Session.SessionProviderConfig != "file" {
 | 
						|
		t.Log(_BConfig.WebConfig.Session.SessionProviderConfig)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
	if !_BConfig.Log.FileLineNum {
 | 
						|
		t.Log(_BConfig.Log.FileLineNum)
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
func TestAssignConfig_03(t *testing.T) {
 | 
						|
	jcf := &config.JSONConfig{}
 | 
						|
	ac, _ := jcf.ParseData([]byte(`{"AppName":"beego"}`))
 | 
						|
	ac.Set("AppName", "test_app")
 | 
						|
	ac.Set("RunMode", "online")
 | 
						|
	ac.Set("StaticDir", "download:down download2:down2")
 | 
						|
	ac.Set("StaticExtensionsToGzip", ".css,.js,.html,.jpg,.png")
 | 
						|
	assignConfig(ac)
 | 
						|
 | 
						|
	t.Logf("%#v", BConfig)
 | 
						|
 | 
						|
	if BConfig.AppName != "test_app" {
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
 | 
						|
	if BConfig.RunMode != "online" {
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
	if BConfig.WebConfig.StaticDir["/download"] != "down" {
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
	if BConfig.WebConfig.StaticDir["/download2"] != "down2" {
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
	if len(BConfig.WebConfig.StaticExtensionsToGzip) != 5 {
 | 
						|
		t.FailNow()
 | 
						|
	}
 | 
						|
}
 |