| 
									
										
										
										
											2015-12-10 15:19:38 -07:00
										 |  |  | // Copyright 2015 The Hugo Authors. 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.
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | package transform
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import (
 | 
					
						
							|  |  |  | 	"bytes"
 | 
					
						
							| 
									
										
										
										
											2016-02-06 18:28:26 +01:00
										 |  |  | 	"fmt"
 | 
					
						
							| 
									
										
										
										
											2016-05-07 16:34:53 -05:00
										 |  |  | 	"strings"
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | 	"testing"
 | 
					
						
							|  |  |  | )
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func TestLiveReloadInject(t *testing.T) {
 | 
					
						
							| 
									
										
										
										
											2016-02-06 18:28:26 +01:00
										 |  |  | 	doTestLiveReloadInject(t, "</body>")
 | 
					
						
							|  |  |  | 	doTestLiveReloadInject(t, "</BODY>")
 | 
					
						
							|  |  |  | }
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func doTestLiveReloadInject(t *testing.T, bodyEndTag string) {
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | 	out := new(bytes.Buffer)
 | 
					
						
							| 
									
										
										
										
											2016-05-07 16:34:53 -05:00
										 |  |  | 	in := strings.NewReader(bodyEndTag)
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-05 10:20:06 +07:00
										 |  |  | 	tr := NewChain(LiveReloadInject(1313))
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | 	tr.Apply(out, in, []byte("path"))
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-06-16 19:43:47 +03:00
										 |  |  | 	expected := fmt.Sprintf(`<script data-no-instant>document.write('<script src="/livereload.js?port=1313&mindelay=10"></' + 'script>')</script>%s`, bodyEndTag)
 | 
					
						
							| 
									
										
										
										
											2015-10-14 00:41:54 -07:00
										 |  |  | 	if string(out.Bytes()) != expected {
 | 
					
						
							|  |  |  | 		t.Errorf("Expected %s got %s", expected, string(out.Bytes()))
 | 
					
						
							|  |  |  | 	}
 | 
					
						
							|  |  |  | }
 |