| 
									
										
										
										
											2016-02-10 23:43:35 +08:00
										 |  |  | package pluginproxy | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							|  |  |  | 	"testing" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/bus" | 
					
						
							|  |  |  | 	m "github.com/grafana/grafana/pkg/models" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/plugins" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/setting" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/util" | 
					
						
							|  |  |  | 	. "github.com/smartystreets/goconvey/convey" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestPluginProxy(t *testing.T) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Convey("When getting proxy headers", t, func() { | 
					
						
							|  |  |  | 		route := &plugins.AppPluginRoute{ | 
					
						
							|  |  |  | 			Headers: []plugins.AppPluginRouteHeader{ | 
					
						
							|  |  |  | 				{Name: "x-header", Content: "my secret {{.SecureJsonData.key}}"}, | 
					
						
							|  |  |  | 			}, | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		setting.SecretKey = "password" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-27 03:27:29 +08:00
										 |  |  | 		bus.AddHandler("test", func(query *m.GetPluginSettingByIdQuery) error { | 
					
						
							| 
									
										
										
										
											2017-04-25 15:14:29 +08:00
										 |  |  | 			key, err := util.Encrypt([]byte("123"), "password") | 
					
						
							|  |  |  | 			if err != nil { | 
					
						
							|  |  |  | 				return err | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-27 03:27:29 +08:00
										 |  |  | 			query.Result = &m.PluginSetting{ | 
					
						
							| 
									
										
										
										
											2016-02-10 23:43:35 +08:00
										 |  |  | 				SecureJsonData: map[string][]byte{ | 
					
						
							| 
									
										
										
										
											2017-04-25 15:14:29 +08:00
										 |  |  | 					"key": key, | 
					
						
							| 
									
										
										
										
											2016-02-10 23:43:35 +08:00
										 |  |  | 				}, | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 			return nil | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		header, err := getHeaders(route, 1, "my-app") | 
					
						
							|  |  |  | 		So(err, ShouldBeNil) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		Convey("Should render header template", func() { | 
					
						
							|  |  |  | 			So(header.Get("x-header"), ShouldEqual, "my secret 123") | 
					
						
							|  |  |  | 		}) | 
					
						
							|  |  |  | 	}) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |