initial commits
							parent
							
								
									d225cfbdcb
								
							
						
					
					
						commit
						bf63c2af83
					
				| 
						 | 
					@ -0,0 +1,32 @@
 | 
				
			||||||
 | 
					package frameproto
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// AppendFrameImageAspectRatio will append the HTML <meta/> element for the Frame-Protocol's (i.e., Farcaster Frame's) "fc:frame:image:aspect_ratio" name-value pair.
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// For example, this call:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//	var p []byte
 | 
				
			||||||
 | 
					//	
 | 
				
			||||||
 | 
					//	// ..
 | 
				
			||||||
 | 
					//	
 | 
				
			||||||
 | 
					//	var aspectRatio string = "1.91:1"
 | 
				
			||||||
 | 
					//	
 | 
				
			||||||
 | 
					//	p = frameproto.AppendFrameImageAspectRatio(p, aspectRatio)
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Would append this HTML <meta/> element:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//	<meta property="fc:frame:image:aspect_ratio" content="1.91:1" />
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Note that this package provides some constants to use with AppendFrameImageAspectRatio.
 | 
				
			||||||
 | 
					// Namely: AspectRatioOnePointNineOneToOne (for "1.91:1") and AspectRatioOneToOne (for "1:1").
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Which in code would be used at:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//	p = frameproto.AppendFrameImageAspectRatio(p, frameproto.AspectRatioOnePointNineOneToOne)
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// And:
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//	p = frameproto.AppendFrameImageAspectRatio(p, frameproto.AspectRatioOneToOne)
 | 
				
			||||||
 | 
					func AppendFrameImageAspectRatio(p []byte, label string) []byte {
 | 
				
			||||||
 | 
						const property string = MetaPropertyFrameImageAspectRatio
 | 
				
			||||||
 | 
						return appendMetaPropertyContent(p, property, label)
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,96 @@
 | 
				
			||||||
 | 
					package frameproto
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"testing"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func TestAppendFrameImageAspectRatio(t *testing.T) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						tests := []struct{
 | 
				
			||||||
 | 
							AspectRatio string
 | 
				
			||||||
 | 
							Expected string
 | 
				
			||||||
 | 
						}{
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AspectRatio:                                                    "",
 | 
				
			||||||
 | 
								Expected: `<meta property="fc:frame:image:aspect_ratio" content="" />`+"\n",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AspectRatio:                                                    "something",
 | 
				
			||||||
 | 
								Expected: `<meta property="fc:frame:image:aspect_ratio" content="something" />`+"\n",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AspectRatio:                                                    "Hello world! 🙂",
 | 
				
			||||||
 | 
								Expected: `<meta property="fc:frame:image:aspect_ratio" content="Hello world! 🙂" />`+"\n",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AspectRatio:                                                    "1.91:1",
 | 
				
			||||||
 | 
								Expected: `<meta property="fc:frame:image:aspect_ratio" content="1.91:1" />`+"\n",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								AspectRatio:                                                    "1:1",
 | 
				
			||||||
 | 
								Expected: `<meta property="fc:frame:image:aspect_ratio" content="1:1" />`+"\n",
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						for testNumber, test := range tests {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								var buffer [256]byte
 | 
				
			||||||
 | 
								var p []byte = buffer[0:0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								p = AppendFrameImageAspectRatio(p, test.AspectRatio)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								expected := test.Expected
 | 
				
			||||||
 | 
								actual := string(p)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if expected != actual {
 | 
				
			||||||
 | 
									t.Errorf("For test #%d, the actual written meta-tag is not what was expected." ,testNumber)
 | 
				
			||||||
 | 
									t.Logf("EXPECTED: %s", expected)
 | 
				
			||||||
 | 
									t.Logf("ACTUAL:   %s", actual)
 | 
				
			||||||
 | 
									t.Logf("EXPECTED: %q", expected)
 | 
				
			||||||
 | 
									t.Logf("ACTUAL:   %q", actual)
 | 
				
			||||||
 | 
									t.Logf("AspectRatio: %q", test.AspectRatio)
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								const top    string = "<html>\n<head>\n"
 | 
				
			||||||
 | 
								const bottom string = "</head>\n<body>\n</body>\n</html>\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								var buffer [256]byte
 | 
				
			||||||
 | 
								var p []byte = buffer[0:0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								p = append(p, top...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								p = AppendFrameImageAspectRatio(p, test.AspectRatio)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								p = append(p, bottom...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								expected := top + test.Expected + bottom
 | 
				
			||||||
 | 
								actual := string(p)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if expected != actual {
 | 
				
			||||||
 | 
									t.Errorf("For test #%d, the actual written meta-tag is not what was expected." ,testNumber)
 | 
				
			||||||
 | 
									t.Logf("EXPECTED: %s", expected)
 | 
				
			||||||
 | 
									t.Logf("ACTUAL:   %s", actual)
 | 
				
			||||||
 | 
									t.Logf("EXPECTED: %q", expected)
 | 
				
			||||||
 | 
									t.Logf("ACTUAL:   %q", actual)
 | 
				
			||||||
 | 
									t.Logf("AspectRatio: %q", test.AspectRatio)
 | 
				
			||||||
 | 
									continue
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
		Reference in New Issue