コード例 #1
0
ファイル: session.go プロジェクト: jango2015/wk
// setupSession
func (srv *HttpServer) configSession() error {
	if !srv.Config.SessionEnable {
		Logger.Println("Session: Enable=", srv.Config.SessionEnable)
		return nil
	}

	name := srv.Config.SessionDriver
	if name == "" {
		name = defaultSessionDriver
	}
	SessionDriver = session.GetDriver(name)
	if SessionDriver == nil {
		return errors.New("session driver is nil:" + name)
	}

	//name = SessionDriver.Name()
	if srv.Config.PluginConfig != nil {
		if node, ok := srv.Config.PluginConfig.Child(name); ok && node != nil {
			SessionDriver.Init(node.Dump())
		} else {
			SessionDriver.Init("")
		}
	} else {
		SessionDriver.Init("")
	}

	Logger.Printf("Session: Enable=%v; Timeout =%d; Driver=%s %v \n",
		srv.Config.SessionEnable, srv.Config.SessionTimeout, srv.Config.SessionDriver, SessionDriver)

	return nil
}
コード例 #2
0
ファイル: session_test.go プロジェクト: jango2015/wk
func TestSessionBasic(t *testing.T) {
	id := session.NewId()
	key := "key"
	value := "value"

	var ok bool
	var err error

	driver := session.GetDriver(driverName)
	if driver == nil {
		t.Error("GetDriver", "return nil", driverName)
		return
	}

	if name := driver.Name(); name != driverName {
		successAndEq(t, "Name", nil, driverName, name)
	}

	if err := driver.New(id, time.Second); err != nil {
		t.Error(t, "New", err)
		return
	}

	ok, err = driver.Add(id, key, value)
	successAndEq(t, "Add", err, true, ok)

	ok, err = driver.Add(id, key, value)
	successAndEq(t, "Add Again", err, false, ok)

	v, ok, err := driver.Get(id, key)
	successAndEq(t, "Get err", err, true, ok)
	successAndEq(t, "Get ok", err, value, v)

	value = value + "_new"
	err = driver.Set(id, key, value)
	successAndEq(t, "Set", err, nil, nil)

	v, ok, err = driver.Get(id, key)
	successAndEq(t, "Get after set", err, value, v)

	keys, err := driver.Keys(id)
	successAndEq(t, "Keys", err, key, keys[0])

	err = driver.Remove(id, key)
	successAndEq(t, "Remove", err, nil, nil)

	v, ok, err = driver.Get(id, key)
	successAndEq(t, "Get after remove", err, false, ok)
	successAndEq(t, "Get after remove", err, nil, v)

	keys, err = driver.Keys(id)
	successAndEq(t, "Keys after remove", err, 0, len(keys))

	ok, err = driver.Exists(id)
	successAndEq(t, "Exists", err, true, ok)

	err = driver.Abandon(id)
	successAndEq(t, "Abandon", err, nil, nil)

	ok, err = driver.Exists(id)
	successAndEq(t, "Exists after Abandon", err, false, ok)
}