|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894 |
- package weapp
-
- import (
- "fmt"
- "io"
- "net/http"
- "net/http/httptest"
- "os"
- "path"
- "testing"
- )
-
- func TestBankCardByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiBankcard, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiBankcard {
- t.Fatalf("Except to path '%s',get '%s'", apiBankcard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id": "622213XXXXXXXXX"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := bankCardByURL(ts.URL+apiBankcard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = bankCardByURL(ts.URL+apiBankcard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBankCard(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiBankcard {
- t.Fatalf("Except to path '%s',get '%s'", apiBankcard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id": "622213XXXXXXXXX"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := bankCard(ts.URL+apiBankcard, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = bankCard(ts.URL+apiBankcard, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestDriverLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiDrivingLicense, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiDrivingLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiDrivingLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id_num": "660601xxxxxxxx1234",
- "name": "张三",
- "sex": "男",
- "nationality": "中国",
- "address": "广东省东莞市xxxxx号",
- "birth_date": "1990-12-21",
- "issue_date": "2012-12-21",
- "car_class": "C1",
- "valid_from": "2018-07-06",
- "valid_to": "2020-07-01",
- "official_seal": "xx市公安局公安交通管理局"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := driverLicenseByURL(ts.URL+apiDrivingLicense, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestDriverLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiDrivingLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiDrivingLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id_num": "660601xxxxxxxx1234",
- "name": "张三",
- "sex": "男",
- "nationality": "中国",
- "address": "广东省东莞市xxxxx号",
- "birth_date": "1990-12-21",
- "issue_date": "2012-12-21",
- "car_class": "C1",
- "valid_from": "2018-07-06",
- "valid_to": "2020-07-01",
- "official_seal": "xx市公安局公安交通管理局"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := driverLicense(ts.URL+apiDrivingLicense, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBusinessLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc("/cv/ocr/bizlicense", func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/bizlicense" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "reg_num": "123123",
- "serial": "123123",
- "legal_representative": "张三",
- "enterprise_name": "XX饮食店",
- "type_of_organization": "个人经营",
- "address": "XX市XX区XX路XX号",
- "type_of_enterprise": "xxx",
- "business_scope": "中型餐馆(不含凉菜、不含裱花蛋糕,不含生食海产品)。",
- "registered_capital": "200万",
- "paid_in_capital": "200万",
- "valid_period": "2019年1月1日",
- "registered_date": "2018年1月1日",
- "cert_position": {
- "pos": {
- "left_top": {
- "x": 155,
- "y": 191
- },
- "right_top": {
- "x": 725,
- "y": 157
- },
- "right_bottom": {
- "x": 743,
- "y": 512
- },
- "left_bottom": {
- "x": 164,
- "y": 525
- }
- }
- },
- "img_size": {
- "w": 966,
- "h": 728
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := businessLicenseByURL(ts.URL+apiBusinessLicense, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBusinessLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/bizlicense" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "reg_num": "123123",
- "serial": "123123",
- "legal_representative": "张三",
- "enterprise_name": "XX饮食店",
- "type_of_organization": "个人经营",
- "address": "XX市XX区XX路XX号",
- "type_of_enterprise": "xxx",
- "business_scope": "中型餐馆(不含凉菜、不含裱花蛋糕,不含生食海产品)。",
- "registered_capital": "200万",
- "paid_in_capital": "200万",
- "valid_period": "2019年1月1日",
- "registered_date": "2018年1月1日",
- "cert_position": {
- "pos": {
- "left_top": {
- "x": 155,
- "y": 191
- },
- "right_top": {
- "x": 725,
- "y": 157
- },
- "right_bottom": {
- "x": 743,
- "y": 512
- },
- "left_bottom": {
- "x": 164,
- "y": 525
- }
- }
- },
- "img_size": {
- "w": 966,
- "h": 728
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := businessLicense(ts.URL+apiBusinessLicense, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestPrintedTextByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc("/cv/ocr/comm", func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/comm" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "items": [
- {
- "text": "腾讯",
- "pos": {
- "left_top": {
- "x": 575,
- "y": 519
- },
- "right_top": {
- "x": 744,
- "y": 519
- },
- "right_bottom": {
- "x": 744,
- "y": 532
- },
- "left_bottom": {
- "x": 573,
- "y": 532
- }
- }
- },
- {
- "text": "微信团队",
- "pos": {
- "left_top": {
- "x": 670,
- "y": 516
- },
- "right_top": {
- "x": 762,
- "y": 517
- },
- "right_bottom": {
- "x": 762,
- "y": 532
- },
- "left_bottom": {
- "x": 670,
- "y": 531
- }
- }
- }
- ],
- "img_size": {
- "w": 1280,
- "h": 720
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := printedTextByURL(ts.URL+apiPrintedText, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestPrintedText(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/comm" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "items": [
- {
- "text": "腾讯",
- "pos": {
- "left_top": {
- "x": 575,
- "y": 519
- },
- "right_top": {
- "x": 744,
- "y": 519
- },
- "right_bottom": {
- "x": 744,
- "y": 532
- },
- "left_bottom": {
- "x": 573,
- "y": 532
- }
- }
- },
- {
- "text": "微信团队",
- "pos": {
- "left_top": {
- "x": 670,
- "y": 516
- },
- "right_top": {
- "x": 762,
- "y": 517
- },
- "right_bottom": {
- "x": 762,
- "y": 532
- },
- "left_bottom": {
- "x": 670,
- "y": 531
- }
- }
- }
- ],
- "img_size": {
- "w": 1280,
- "h": 720
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := printedText(ts.URL+apiPrintedText, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestIDCardByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiIDCard, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiIDCard {
- t.Fatalf("Except to path '%s',get '%s'", apiIDCard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "type": "Front",
- "id": "44XXXXXXXXXXXXXXX1"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := idCardByURL(ts.URL+apiIDCard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = idCardByURL(ts.URL+apiIDCard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestIDCard(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiIDCard {
- t.Fatalf("Except to path '%s',get '%s'", apiIDCard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "type": "Front",
- "id": "44XXXXXXXXXXXXXXX1"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := idCard(ts.URL+apiIDCard, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = idCard(ts.URL+apiIDCard, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestVehicleLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiVehicleLicense, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiVehicleLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiVehicleLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "vhicle_type": "小型普通客⻋",
- "owner": "东莞市xxxxx机械厂",
- "addr": "广东省东莞市xxxxx号",
- "use_character": "非营运",
- "model": "江淮牌HFCxxxxxxx",
- "vin": "LJ166xxxxxxxx51",
- "engine_num": "J3xxxxx3",
- "register_date": "2018-07-06",
- "issue_date": "2018-07-01",
- "plate_num_b": "粤xxxxx",
- "record": "441xxxxxx3",
- "passengers_num": "7人",
- "total_quality": "2700kg",
- "prepare_quality": "1995kg"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := vehicleLicenseByURL(ts.URL+apiVehicleLicense, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = vehicleLicenseByURL(ts.URL+apiVehicleLicense, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestVehicleLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiVehicleLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiVehicleLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "vhicle_type": "小型普通客⻋",
- "owner": "东莞市xxxxx机械厂",
- "addr": "广东省东莞市xxxxx号",
- "use_character": "非营运",
- "model": "江淮牌HFCxxxxxxx",
- "vin": "LJ166xxxxxxxx51",
- "engine_num": "J3xxxxx3",
- "register_date": "2018-07-06",
- "issue_date": "2018-07-01",
- "plate_num_b": "粤xxxxx",
- "record": "441xxxxxx3",
- "passengers_num": "7人",
- "total_quality": "2700kg",
- "prepare_quality": "1995kg"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := vehicleLicense(ts.URL+apiVehicleLicense, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = vehicleLicense(ts.URL+apiVehicleLicense, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
|