mocks

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 14, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package mocks is a generated GoMock package.

Package mocks is a generated GoMock package.

Package mocks is a generated GoMock package.

Package mocks is a generated GoMock package.

Package mocks is a generated GoMock package.

Package mocks is a generated GoMock package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type MockAnteDecorator

type MockAnteDecorator struct {
	// contains filtered or unexported fields
}

MockAnteDecorator is a mock of AnteDecorator interface

func NewMockAnteDecorator

func NewMockAnteDecorator(ctrl *gomock.Controller) *MockAnteDecorator

NewMockAnteDecorator creates a new mock instance

func (*MockAnteDecorator) AnteHandle

func (m *MockAnteDecorator) AnteHandle(ctx types.Context, tx types.Tx, simulate bool, next types.AnteHandler) (types.Context, error)

AnteHandle mocks base method

func (*MockAnteDecorator) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

type MockAnteDecoratorMockRecorder

type MockAnteDecoratorMockRecorder struct {
	// contains filtered or unexported fields
}

MockAnteDecoratorMockRecorder is the mock recorder for MockAnteDecorator

func (*MockAnteDecoratorMockRecorder) AnteHandle

func (mr *MockAnteDecoratorMockRecorder) AnteHandle(ctx, tx, simulate, next interface{}) *gomock.Call

AnteHandle indicates an expected call of AnteHandle

type MockAppModule

type MockAppModule struct {
	// contains filtered or unexported fields
}

MockAppModule is a mock of AppModule interface

func NewMockAppModule

func NewMockAppModule(ctrl *gomock.Controller) *MockAppModule

NewMockAppModule creates a new mock instance

func (*MockAppModule) BeginBlock

func (m *MockAppModule) BeginBlock(arg0 types.Context, arg1 types0.RequestBeginBlock)

BeginBlock mocks base method

func (*MockAppModule) DefaultGenesis

func (m *MockAppModule) DefaultGenesis(arg0 codec.JSONMarshaler) json.RawMessage

DefaultGenesis mocks base method

func (*MockAppModule) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockAppModule) EndBlock

EndBlock mocks base method

func (*MockAppModule) ExportGenesis

func (m *MockAppModule) ExportGenesis(arg0 types.Context, arg1 codec.JSONMarshaler) json.RawMessage

ExportGenesis mocks base method

func (*MockAppModule) GetQueryCmd

func (m *MockAppModule) GetQueryCmd(arg0 *codec.Codec) *cobra.Command

GetQueryCmd mocks base method

func (*MockAppModule) GetTxCmd

func (m *MockAppModule) GetTxCmd(arg0 *codec.Codec) *cobra.Command

GetTxCmd mocks base method

func (*MockAppModule) InitGenesis

func (m *MockAppModule) InitGenesis(arg0 types.Context, arg1 codec.JSONMarshaler, arg2 json.RawMessage) []types0.ValidatorUpdate

InitGenesis mocks base method

func (*MockAppModule) Name

func (m *MockAppModule) Name() string

Name mocks base method

func (*MockAppModule) NewHandler

func (m *MockAppModule) NewHandler() types.Handler

NewHandler mocks base method

func (*MockAppModule) NewQuerierHandler

func (m *MockAppModule) NewQuerierHandler() types.Querier

NewQuerierHandler mocks base method

func (*MockAppModule) QuerierRoute

func (m *MockAppModule) QuerierRoute() string

QuerierRoute mocks base method

func (*MockAppModule) RegisterCodec

func (m *MockAppModule) RegisterCodec(arg0 *codec.Codec)

RegisterCodec mocks base method

func (*MockAppModule) RegisterInvariants

func (m *MockAppModule) RegisterInvariants(arg0 types.InvariantRegistry)

RegisterInvariants mocks base method

func (*MockAppModule) RegisterRESTRoutes

func (m *MockAppModule) RegisterRESTRoutes(arg0 context.CLIContext, arg1 *mux.Router)

RegisterRESTRoutes mocks base method

func (*MockAppModule) Route

func (m *MockAppModule) Route() string

Route mocks base method

func (*MockAppModule) ValidateGenesis

func (m *MockAppModule) ValidateGenesis(arg0 codec.JSONMarshaler, arg1 json.RawMessage) error

ValidateGenesis mocks base method

type MockAppModuleBasic

type MockAppModuleBasic struct {
	// contains filtered or unexported fields
}

MockAppModuleBasic is a mock of AppModuleBasic interface

func NewMockAppModuleBasic

func NewMockAppModuleBasic(ctrl *gomock.Controller) *MockAppModuleBasic

NewMockAppModuleBasic creates a new mock instance

func (*MockAppModuleBasic) DefaultGenesis

func (m *MockAppModuleBasic) DefaultGenesis(arg0 codec.JSONMarshaler) json.RawMessage

DefaultGenesis mocks base method

func (*MockAppModuleBasic) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockAppModuleBasic) GetQueryCmd

func (m *MockAppModuleBasic) GetQueryCmd(arg0 *codec.Codec) *cobra.Command

GetQueryCmd mocks base method

func (*MockAppModuleBasic) GetTxCmd

func (m *MockAppModuleBasic) GetTxCmd(arg0 *codec.Codec) *cobra.Command

GetTxCmd mocks base method

func (*MockAppModuleBasic) Name

func (m *MockAppModuleBasic) Name() string

Name mocks base method

func (*MockAppModuleBasic) RegisterCodec

func (m *MockAppModuleBasic) RegisterCodec(arg0 *codec.Codec)

RegisterCodec mocks base method

func (*MockAppModuleBasic) RegisterRESTRoutes

func (m *MockAppModuleBasic) RegisterRESTRoutes(arg0 context.CLIContext, arg1 *mux.Router)

RegisterRESTRoutes mocks base method

func (*MockAppModuleBasic) ValidateGenesis

func (m *MockAppModuleBasic) ValidateGenesis(arg0 codec.JSONMarshaler, arg1 json.RawMessage) error

ValidateGenesis mocks base method

type MockAppModuleBasicMockRecorder

type MockAppModuleBasicMockRecorder struct {
	// contains filtered or unexported fields
}

MockAppModuleBasicMockRecorder is the mock recorder for MockAppModuleBasic

func (*MockAppModuleBasicMockRecorder) DefaultGenesis

func (mr *MockAppModuleBasicMockRecorder) DefaultGenesis(arg0 interface{}) *gomock.Call

DefaultGenesis indicates an expected call of DefaultGenesis

func (*MockAppModuleBasicMockRecorder) GetQueryCmd

func (mr *MockAppModuleBasicMockRecorder) GetQueryCmd(arg0 interface{}) *gomock.Call

GetQueryCmd indicates an expected call of GetQueryCmd

func (*MockAppModuleBasicMockRecorder) GetTxCmd

func (mr *MockAppModuleBasicMockRecorder) GetTxCmd(arg0 interface{}) *gomock.Call

GetTxCmd indicates an expected call of GetTxCmd

func (*MockAppModuleBasicMockRecorder) Name

Name indicates an expected call of Name

func (*MockAppModuleBasicMockRecorder) RegisterCodec

func (mr *MockAppModuleBasicMockRecorder) RegisterCodec(arg0 interface{}) *gomock.Call

RegisterCodec indicates an expected call of RegisterCodec

func (*MockAppModuleBasicMockRecorder) RegisterRESTRoutes

func (mr *MockAppModuleBasicMockRecorder) RegisterRESTRoutes(arg0, arg1 interface{}) *gomock.Call

RegisterRESTRoutes indicates an expected call of RegisterRESTRoutes

func (*MockAppModuleBasicMockRecorder) ValidateGenesis

func (mr *MockAppModuleBasicMockRecorder) ValidateGenesis(arg0, arg1 interface{}) *gomock.Call

ValidateGenesis indicates an expected call of ValidateGenesis

type MockAppModuleGenesis

type MockAppModuleGenesis struct {
	// contains filtered or unexported fields
}

MockAppModuleGenesis is a mock of AppModuleGenesis interface

func NewMockAppModuleGenesis

func NewMockAppModuleGenesis(ctrl *gomock.Controller) *MockAppModuleGenesis

NewMockAppModuleGenesis creates a new mock instance

func (*MockAppModuleGenesis) DefaultGenesis

func (m *MockAppModuleGenesis) DefaultGenesis(arg0 codec.JSONMarshaler) json.RawMessage

DefaultGenesis mocks base method

func (*MockAppModuleGenesis) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockAppModuleGenesis) ExportGenesis

func (m *MockAppModuleGenesis) ExportGenesis(arg0 types.Context, arg1 codec.JSONMarshaler) json.RawMessage

ExportGenesis mocks base method

func (*MockAppModuleGenesis) GetQueryCmd

func (m *MockAppModuleGenesis) GetQueryCmd(arg0 *codec.Codec) *cobra.Command

GetQueryCmd mocks base method

func (*MockAppModuleGenesis) GetTxCmd

func (m *MockAppModuleGenesis) GetTxCmd(arg0 *codec.Codec) *cobra.Command

GetTxCmd mocks base method

func (*MockAppModuleGenesis) InitGenesis

InitGenesis mocks base method

func (*MockAppModuleGenesis) Name

func (m *MockAppModuleGenesis) Name() string

Name mocks base method

func (*MockAppModuleGenesis) RegisterCodec

func (m *MockAppModuleGenesis) RegisterCodec(arg0 *codec.Codec)

RegisterCodec mocks base method

func (*MockAppModuleGenesis) RegisterRESTRoutes

func (m *MockAppModuleGenesis) RegisterRESTRoutes(arg0 context.CLIContext, arg1 *mux.Router)

RegisterRESTRoutes mocks base method

func (*MockAppModuleGenesis) ValidateGenesis

func (m *MockAppModuleGenesis) ValidateGenesis(arg0 codec.JSONMarshaler, arg1 json.RawMessage) error

ValidateGenesis mocks base method

type MockAppModuleGenesisMockRecorder

type MockAppModuleGenesisMockRecorder struct {
	// contains filtered or unexported fields
}

MockAppModuleGenesisMockRecorder is the mock recorder for MockAppModuleGenesis

func (*MockAppModuleGenesisMockRecorder) DefaultGenesis

func (mr *MockAppModuleGenesisMockRecorder) DefaultGenesis(arg0 interface{}) *gomock.Call

DefaultGenesis indicates an expected call of DefaultGenesis

func (*MockAppModuleGenesisMockRecorder) ExportGenesis

func (mr *MockAppModuleGenesisMockRecorder) ExportGenesis(arg0, arg1 interface{}) *gomock.Call

ExportGenesis indicates an expected call of ExportGenesis

func (*MockAppModuleGenesisMockRecorder) GetQueryCmd

func (mr *MockAppModuleGenesisMockRecorder) GetQueryCmd(arg0 interface{}) *gomock.Call

GetQueryCmd indicates an expected call of GetQueryCmd

func (*MockAppModuleGenesisMockRecorder) GetTxCmd

func (mr *MockAppModuleGenesisMockRecorder) GetTxCmd(arg0 interface{}) *gomock.Call

GetTxCmd indicates an expected call of GetTxCmd

func (*MockAppModuleGenesisMockRecorder) InitGenesis

func (mr *MockAppModuleGenesisMockRecorder) InitGenesis(arg0, arg1, arg2 interface{}) *gomock.Call

InitGenesis indicates an expected call of InitGenesis

func (*MockAppModuleGenesisMockRecorder) Name

Name indicates an expected call of Name

func (*MockAppModuleGenesisMockRecorder) RegisterCodec

func (mr *MockAppModuleGenesisMockRecorder) RegisterCodec(arg0 interface{}) *gomock.Call

RegisterCodec indicates an expected call of RegisterCodec

func (*MockAppModuleGenesisMockRecorder) RegisterRESTRoutes

func (mr *MockAppModuleGenesisMockRecorder) RegisterRESTRoutes(arg0, arg1 interface{}) *gomock.Call

RegisterRESTRoutes indicates an expected call of RegisterRESTRoutes

func (*MockAppModuleGenesisMockRecorder) ValidateGenesis

func (mr *MockAppModuleGenesisMockRecorder) ValidateGenesis(arg0, arg1 interface{}) *gomock.Call

ValidateGenesis indicates an expected call of ValidateGenesis

type MockAppModuleMockRecorder

type MockAppModuleMockRecorder struct {
	// contains filtered or unexported fields
}

MockAppModuleMockRecorder is the mock recorder for MockAppModule

func (*MockAppModuleMockRecorder) BeginBlock

func (mr *MockAppModuleMockRecorder) BeginBlock(arg0, arg1 interface{}) *gomock.Call

BeginBlock indicates an expected call of BeginBlock

func (*MockAppModuleMockRecorder) DefaultGenesis

func (mr *MockAppModuleMockRecorder) DefaultGenesis(arg0 interface{}) *gomock.Call

DefaultGenesis indicates an expected call of DefaultGenesis

func (*MockAppModuleMockRecorder) EndBlock

func (mr *MockAppModuleMockRecorder) EndBlock(arg0, arg1 interface{}) *gomock.Call

EndBlock indicates an expected call of EndBlock

func (*MockAppModuleMockRecorder) ExportGenesis

func (mr *MockAppModuleMockRecorder) ExportGenesis(arg0, arg1 interface{}) *gomock.Call

ExportGenesis indicates an expected call of ExportGenesis

func (*MockAppModuleMockRecorder) GetQueryCmd

func (mr *MockAppModuleMockRecorder) GetQueryCmd(arg0 interface{}) *gomock.Call

GetQueryCmd indicates an expected call of GetQueryCmd

func (*MockAppModuleMockRecorder) GetTxCmd

func (mr *MockAppModuleMockRecorder) GetTxCmd(arg0 interface{}) *gomock.Call

GetTxCmd indicates an expected call of GetTxCmd

func (*MockAppModuleMockRecorder) InitGenesis

func (mr *MockAppModuleMockRecorder) InitGenesis(arg0, arg1, arg2 interface{}) *gomock.Call

InitGenesis indicates an expected call of InitGenesis

func (*MockAppModuleMockRecorder) Name

Name indicates an expected call of Name

func (*MockAppModuleMockRecorder) NewHandler

func (mr *MockAppModuleMockRecorder) NewHandler() *gomock.Call

NewHandler indicates an expected call of NewHandler

func (*MockAppModuleMockRecorder) NewQuerierHandler

func (mr *MockAppModuleMockRecorder) NewQuerierHandler() *gomock.Call

NewQuerierHandler indicates an expected call of NewQuerierHandler

func (*MockAppModuleMockRecorder) QuerierRoute

func (mr *MockAppModuleMockRecorder) QuerierRoute() *gomock.Call

QuerierRoute indicates an expected call of QuerierRoute

func (*MockAppModuleMockRecorder) RegisterCodec

func (mr *MockAppModuleMockRecorder) RegisterCodec(arg0 interface{}) *gomock.Call

RegisterCodec indicates an expected call of RegisterCodec

func (*MockAppModuleMockRecorder) RegisterInvariants

func (mr *MockAppModuleMockRecorder) RegisterInvariants(arg0 interface{}) *gomock.Call

RegisterInvariants indicates an expected call of RegisterInvariants

func (*MockAppModuleMockRecorder) RegisterRESTRoutes

func (mr *MockAppModuleMockRecorder) RegisterRESTRoutes(arg0, arg1 interface{}) *gomock.Call

RegisterRESTRoutes indicates an expected call of RegisterRESTRoutes

func (*MockAppModuleMockRecorder) Route

func (mr *MockAppModuleMockRecorder) Route() *gomock.Call

Route indicates an expected call of Route

func (*MockAppModuleMockRecorder) ValidateGenesis

func (mr *MockAppModuleMockRecorder) ValidateGenesis(arg0, arg1 interface{}) *gomock.Call

ValidateGenesis indicates an expected call of ValidateGenesis

type MockDB

type MockDB struct {
	// contains filtered or unexported fields
}

MockDB is a mock of DB interface

func NewMockDB

func NewMockDB(ctrl *gomock.Controller) *MockDB

NewMockDB creates a new mock instance

func (*MockDB) Close

func (m *MockDB) Close() error

Close mocks base method

func (*MockDB) Delete

func (m *MockDB) Delete(arg0 []byte) error

Delete mocks base method

func (*MockDB) DeleteSync

func (m *MockDB) DeleteSync(arg0 []byte) error

DeleteSync mocks base method

func (*MockDB) EXPECT

func (m *MockDB) EXPECT() *MockDBMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockDB) Get

func (m *MockDB) Get(arg0 []byte) ([]byte, error)

Get mocks base method

func (*MockDB) Has

func (m *MockDB) Has(arg0 []byte) (bool, error)

Has mocks base method

func (*MockDB) Iterator

func (m *MockDB) Iterator(arg0, arg1 []byte) (tm_db.Iterator, error)

Iterator mocks base method

func (*MockDB) NewBatch

func (m *MockDB) NewBatch() tm_db.Batch

NewBatch mocks base method

func (*MockDB) Print

func (m *MockDB) Print() error

Print mocks base method

func (*MockDB) ReverseIterator

func (m *MockDB) ReverseIterator(arg0, arg1 []byte) (tm_db.Iterator, error)

ReverseIterator mocks base method

func (*MockDB) Set

func (m *MockDB) Set(arg0, arg1 []byte) error

Set mocks base method

func (*MockDB) SetSync

func (m *MockDB) SetSync(arg0, arg1 []byte) error

SetSync mocks base method

func (*MockDB) Stats

func (m *MockDB) Stats() map[string]string

Stats mocks base method

type MockDBMockRecorder

type MockDBMockRecorder struct {
	// contains filtered or unexported fields
}

MockDBMockRecorder is the mock recorder for MockDB

func (*MockDBMockRecorder) Close

func (mr *MockDBMockRecorder) Close() *gomock.Call

Close indicates an expected call of Close

func (*MockDBMockRecorder) Delete

func (mr *MockDBMockRecorder) Delete(arg0 interface{}) *gomock.Call

Delete indicates an expected call of Delete

func (*MockDBMockRecorder) DeleteSync

func (mr *MockDBMockRecorder) DeleteSync(arg0 interface{}) *gomock.Call

DeleteSync indicates an expected call of DeleteSync

func (*MockDBMockRecorder) Get

func (mr *MockDBMockRecorder) Get(arg0 interface{}) *gomock.Call

Get indicates an expected call of Get

func (*MockDBMockRecorder) Has

func (mr *MockDBMockRecorder) Has(arg0 interface{}) *gomock.Call

Has indicates an expected call of Has

func (*MockDBMockRecorder) Iterator

func (mr *MockDBMockRecorder) Iterator(arg0, arg1 interface{}) *gomock.Call

Iterator indicates an expected call of Iterator

func (*MockDBMockRecorder) NewBatch

func (mr *MockDBMockRecorder) NewBatch() *gomock.Call

NewBatch indicates an expected call of NewBatch

func (*MockDBMockRecorder) Print

func (mr *MockDBMockRecorder) Print() *gomock.Call

Print indicates an expected call of Print

func (*MockDBMockRecorder) ReverseIterator

func (mr *MockDBMockRecorder) ReverseIterator(arg0, arg1 interface{}) *gomock.Call

ReverseIterator indicates an expected call of ReverseIterator

func (*MockDBMockRecorder) Set

func (mr *MockDBMockRecorder) Set(arg0, arg1 interface{}) *gomock.Call

Set indicates an expected call of Set

func (*MockDBMockRecorder) SetSync

func (mr *MockDBMockRecorder) SetSync(arg0, arg1 interface{}) *gomock.Call

SetSync indicates an expected call of SetSync

func (*MockDBMockRecorder) Stats

func (mr *MockDBMockRecorder) Stats() *gomock.Call

Stats indicates an expected call of Stats

type MockInvariantRegistry

type MockInvariantRegistry struct {
	// contains filtered or unexported fields
}

MockInvariantRegistry is a mock of InvariantRegistry interface

func NewMockInvariantRegistry

func NewMockInvariantRegistry(ctrl *gomock.Controller) *MockInvariantRegistry

NewMockInvariantRegistry creates a new mock instance

func (*MockInvariantRegistry) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockInvariantRegistry) RegisterRoute

func (m *MockInvariantRegistry) RegisterRoute(moduleName, route string, invar types.Invariant)

RegisterRoute mocks base method

type MockInvariantRegistryMockRecorder

type MockInvariantRegistryMockRecorder struct {
	// contains filtered or unexported fields
}

MockInvariantRegistryMockRecorder is the mock recorder for MockInvariantRegistry

func (*MockInvariantRegistryMockRecorder) RegisterRoute

func (mr *MockInvariantRegistryMockRecorder) RegisterRoute(moduleName, route, invar interface{}) *gomock.Call

RegisterRoute indicates an expected call of RegisterRoute

type MockNodeQuerier

type MockNodeQuerier struct {
	// contains filtered or unexported fields
}

MockNodeQuerier is a mock of NodeQuerier interface

func NewMockNodeQuerier

func NewMockNodeQuerier(ctrl *gomock.Controller) *MockNodeQuerier

NewMockNodeQuerier creates a new mock instance

func (*MockNodeQuerier) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockNodeQuerier) QueryWithData

func (m *MockNodeQuerier) QueryWithData(path string, data []byte) ([]byte, int64, error)

QueryWithData mocks base method

type MockNodeQuerierMockRecorder

type MockNodeQuerierMockRecorder struct {
	// contains filtered or unexported fields
}

MockNodeQuerierMockRecorder is the mock recorder for MockNodeQuerier

func (*MockNodeQuerierMockRecorder) QueryWithData

func (mr *MockNodeQuerierMockRecorder) QueryWithData(path, data interface{}) *gomock.Call

QueryWithData indicates an expected call of QueryWithData

type MockQueryRouter

type MockQueryRouter struct {
	// contains filtered or unexported fields
}

MockQueryRouter is a mock of QueryRouter interface

func NewMockQueryRouter

func NewMockQueryRouter(ctrl *gomock.Controller) *MockQueryRouter

NewMockQueryRouter creates a new mock instance

func (*MockQueryRouter) AddRoute

AddRoute mocks base method

func (*MockQueryRouter) EXPECT

EXPECT returns an object that allows the caller to indicate expected use

func (*MockQueryRouter) Route

func (m *MockQueryRouter) Route(path string) types.Querier

Route mocks base method

type MockQueryRouterMockRecorder

type MockQueryRouterMockRecorder struct {
	// contains filtered or unexported fields
}

MockQueryRouterMockRecorder is the mock recorder for MockQueryRouter

func (*MockQueryRouterMockRecorder) AddRoute

func (mr *MockQueryRouterMockRecorder) AddRoute(r, h interface{}) *gomock.Call

AddRoute indicates an expected call of AddRoute

func (*MockQueryRouterMockRecorder) Route

func (mr *MockQueryRouterMockRecorder) Route(path interface{}) *gomock.Call

Route indicates an expected call of Route

type MockRouter

type MockRouter struct {
	// contains filtered or unexported fields
}

MockRouter is a mock of Router interface

func NewMockRouter

func NewMockRouter(ctrl *gomock.Controller) *MockRouter

NewMockRouter creates a new mock instance

func (*MockRouter) AddRoute

func (m *MockRouter) AddRoute(r string, h types.Handler) types.Router

AddRoute mocks base method

func (*MockRouter) EXPECT

func (m *MockRouter) EXPECT() *MockRouterMockRecorder

EXPECT returns an object that allows the caller to indicate expected use

func (*MockRouter) Route

func (m *MockRouter) Route(ctx types.Context, path string) types.Handler

Route mocks base method

type MockRouterMockRecorder

type MockRouterMockRecorder struct {
	// contains filtered or unexported fields
}

MockRouterMockRecorder is the mock recorder for MockRouter

func (*MockRouterMockRecorder) AddRoute

func (mr *MockRouterMockRecorder) AddRoute(r, h interface{}) *gomock.Call

AddRoute indicates an expected call of AddRoute

func (*MockRouterMockRecorder) Route

func (mr *MockRouterMockRecorder) Route(ctx, path interface{}) *gomock.Call

Route indicates an expected call of Route

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL