| package engine |
|
|
| import "testing" |
|
|
| func TestCapabilityRule(t *testing.T) { |
| r := CapabilityRule{} |
| tests := []struct { |
| op Capability |
| want Decision |
| }{ |
| {CapScreenshot, UseChrome}, |
| {CapPDF, UseChrome}, |
| {CapEvaluate, UseChrome}, |
| {CapCookies, UseChrome}, |
| {CapNavigate, Undecided}, |
| {CapSnapshot, Undecided}, |
| {CapText, Undecided}, |
| {CapClick, Undecided}, |
| {CapType, Undecided}, |
| } |
| for _, tt := range tests { |
| if got := r.Decide(tt.op, ""); got != tt.want { |
| t.Errorf("CapabilityRule(%s) = %d, want %d", tt.op, got, tt.want) |
| } |
| } |
| } |
|
|
| func TestContentHintRule(t *testing.T) { |
| r := ContentHintRule{} |
| tests := []struct { |
| op Capability |
| url string |
| want Decision |
| }{ |
| {CapNavigate, "https://example.com/page.html", UseLite}, |
| {CapSnapshot, "https://example.com/doc.htm", UseLite}, |
| {CapText, "https://example.com/feed.xml", UseLite}, |
| {CapNavigate, "https://example.com/readme.txt", UseLite}, |
| {CapNavigate, "https://example.com/notes.md", UseLite}, |
| {CapNavigate, "https://example.com/app", Undecided}, |
| {CapNavigate, "https://example.com/", Undecided}, |
| {CapClick, "https://example.com/page.html", Undecided}, |
| {CapScreenshot, "https://example.com/page.html", Undecided}, |
| } |
| for _, tt := range tests { |
| if got := r.Decide(tt.op, tt.url); got != tt.want { |
| t.Errorf("ContentHintRule(%s, %q) = %d, want %d", tt.op, tt.url, got, tt.want) |
| } |
| } |
| } |
|
|
| func TestDefaultLiteRule(t *testing.T) { |
| r := DefaultLiteRule{} |
| tests := []struct { |
| op Capability |
| want Decision |
| }{ |
| {CapNavigate, UseLite}, |
| {CapSnapshot, UseLite}, |
| {CapText, UseLite}, |
| {CapClick, UseLite}, |
| {CapType, UseLite}, |
| {CapScreenshot, Undecided}, |
| {CapPDF, Undecided}, |
| } |
| for _, tt := range tests { |
| if got := r.Decide(tt.op, ""); got != tt.want { |
| t.Errorf("DefaultLiteRule(%s) = %d, want %d", tt.op, got, tt.want) |
| } |
| } |
| } |
|
|
| func TestDefaultChromeRule(t *testing.T) { |
| r := DefaultChromeRule{} |
| for _, op := range []Capability{CapNavigate, CapScreenshot, CapClick, CapPDF} { |
| if got := r.Decide(op, ""); got != UseChrome { |
| t.Errorf("DefaultChromeRule(%s) = %d, want UseChrome", op, got) |
| } |
| } |
| } |
|
|