Mercurial > hg > orthanc
comparison UnitTestsSources/RestApiTests.cpp @ 2800:dc7330089736
"OrthancPeers" configuration option now allows to specify HTTP headers
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 23 Aug 2018 13:11:48 +0200 |
parents | 6c72ef308cb3 |
children | 807169f85ba9 |
comparison
equal
deleted
inserted
replaced
2799:6e3a60b85da6 | 2800:dc7330089736 |
---|---|
467 ASSERT_TRUE(d.Apply(T1)); | 467 ASSERT_TRUE(d.Apply(T1)); |
468 ASSERT_EQ("text", h.GetType()); | 468 ASSERT_EQ("text", h.GetType()); |
469 ASSERT_EQ("plain", h.GetSubType()); | 469 ASSERT_EQ("plain", h.GetSubType()); |
470 } | 470 } |
471 } | 471 } |
472 | |
473 | |
474 TEST(WebServiceParameters, Serialization) | |
475 { | |
476 { | |
477 Json::Value v = Json::arrayValue; | |
478 v.append("http://localhost:8042/"); | |
479 | |
480 WebServiceParameters p(v); | |
481 ASSERT_FALSE(p.IsAdvancedFormatNeeded()); | |
482 | |
483 Json::Value v2; | |
484 p.Serialize(v2, false, true); | |
485 ASSERT_EQ(v, v2); | |
486 | |
487 WebServiceParameters p2(v2); | |
488 ASSERT_EQ("http://localhost:8042/", p2.GetUrl()); | |
489 ASSERT_TRUE(p2.GetUsername().empty()); | |
490 ASSERT_TRUE(p2.GetPassword().empty()); | |
491 ASSERT_TRUE(p2.GetCertificateFile().empty()); | |
492 ASSERT_TRUE(p2.GetCertificateKeyFile().empty()); | |
493 ASSERT_TRUE(p2.GetCertificateKeyPassword().empty()); | |
494 ASSERT_FALSE(p2.IsPkcs11Enabled()); | |
495 } | |
496 | |
497 { | |
498 Json::Value v = Json::arrayValue; | |
499 v.append("http://localhost:8042/"); | |
500 v.append("user"); | |
501 v.append("pass"); | |
502 | |
503 WebServiceParameters p(v); | |
504 ASSERT_FALSE(p.IsAdvancedFormatNeeded()); | |
505 ASSERT_EQ("http://localhost:8042/", p.GetUrl()); | |
506 ASSERT_EQ("user", p.GetUsername()); | |
507 ASSERT_EQ("pass", p.GetPassword()); | |
508 ASSERT_TRUE(p.GetCertificateFile().empty()); | |
509 ASSERT_TRUE(p.GetCertificateKeyFile().empty()); | |
510 ASSERT_TRUE(p.GetCertificateKeyPassword().empty()); | |
511 ASSERT_FALSE(p.IsPkcs11Enabled()); | |
512 | |
513 Json::Value v2; | |
514 p.Serialize(v2, false, true); | |
515 ASSERT_EQ(v, v2); | |
516 | |
517 p.Serialize(v2, false, false /* no password */); | |
518 WebServiceParameters p2(v2); | |
519 ASSERT_EQ(Json::arrayValue, v2.type()); | |
520 ASSERT_EQ(3u, v2.size()); | |
521 ASSERT_EQ("http://localhost:8042/", v2[0u].asString()); | |
522 ASSERT_EQ("user", v2[1u].asString()); | |
523 ASSERT_TRUE(v2[2u].asString().empty()); | |
524 } | |
525 | |
526 { | |
527 Json::Value v = Json::arrayValue; | |
528 v.append("http://localhost:8042/"); | |
529 | |
530 WebServiceParameters p(v); | |
531 ASSERT_FALSE(p.IsAdvancedFormatNeeded()); | |
532 p.SetPkcs11Enabled(true); | |
533 ASSERT_TRUE(p.IsAdvancedFormatNeeded()); | |
534 | |
535 Json::Value v2; | |
536 p.Serialize(v2, false, true); | |
537 WebServiceParameters p2(v2); | |
538 | |
539 ASSERT_EQ(Json::objectValue, v2.type()); | |
540 ASSERT_EQ(3u, v2.size()); | |
541 ASSERT_EQ("http://localhost:8042/", v2["Url"].asString()); | |
542 ASSERT_TRUE(v2["Pkcs11"].asBool()); | |
543 ASSERT_EQ(Json::objectValue, v2["HttpHeaders"].type()); | |
544 ASSERT_EQ(0u, v2["HttpHeaders"].size()); | |
545 } | |
546 | |
547 { | |
548 Json::Value v = Json::arrayValue; | |
549 v.append("http://localhost:8042/"); | |
550 | |
551 WebServiceParameters p(v); | |
552 ASSERT_FALSE(p.IsAdvancedFormatNeeded()); | |
553 p.SetClientCertificate("a", "b", "c"); | |
554 ASSERT_TRUE(p.IsAdvancedFormatNeeded()); | |
555 | |
556 Json::Value v2; | |
557 p.Serialize(v2, false, true); | |
558 WebServiceParameters p2(v2); | |
559 | |
560 ASSERT_EQ(Json::objectValue, v2.type()); | |
561 ASSERT_EQ(6u, v2.size()); | |
562 ASSERT_EQ("http://localhost:8042/", v2["Url"].asString()); | |
563 ASSERT_EQ("a", v2["CertificateFile"].asString()); | |
564 ASSERT_EQ("b", v2["CertificateKeyFile"].asString()); | |
565 ASSERT_EQ("c", v2["CertificateKeyPassword"].asString()); | |
566 ASSERT_FALSE(v2["Pkcs11"].asBool()); | |
567 ASSERT_EQ(Json::objectValue, v2["HttpHeaders"].type()); | |
568 ASSERT_EQ(0u, v2["HttpHeaders"].size()); | |
569 } | |
570 | |
571 { | |
572 Json::Value v = Json::arrayValue; | |
573 v.append("http://localhost:8042/"); | |
574 | |
575 WebServiceParameters p(v); | |
576 ASSERT_FALSE(p.IsAdvancedFormatNeeded()); | |
577 p.AddHttpHeader("a", "b"); | |
578 p.AddHttpHeader("c", "d"); | |
579 ASSERT_TRUE(p.IsAdvancedFormatNeeded()); | |
580 | |
581 Json::Value v2; | |
582 p.Serialize(v2, false, true); | |
583 WebServiceParameters p2(v2); | |
584 | |
585 ASSERT_EQ(Json::objectValue, v2.type()); | |
586 ASSERT_EQ(3u, v2.size()); | |
587 ASSERT_EQ("http://localhost:8042/", v2["Url"].asString()); | |
588 ASSERT_FALSE(v2["Pkcs11"].asBool()); | |
589 ASSERT_EQ(Json::objectValue, v2["HttpHeaders"].type()); | |
590 ASSERT_EQ(2u, v2["HttpHeaders"].size()); | |
591 ASSERT_EQ("b", v2["HttpHeaders"]["a"].asString()); | |
592 ASSERT_EQ("d", v2["HttpHeaders"]["c"].asString()); | |
593 | |
594 std::set<std::string> a; | |
595 p2.ListHttpHeaders(a); | |
596 ASSERT_EQ(2u, a.size()); | |
597 ASSERT_TRUE(a.find("a") != a.end()); | |
598 ASSERT_TRUE(a.find("c") != a.end()); | |
599 | |
600 std::string s; | |
601 ASSERT_TRUE(p2.LookupHttpHeader(s, "a")); ASSERT_EQ("b", s); | |
602 ASSERT_TRUE(p2.LookupHttpHeader(s, "c")); ASSERT_EQ("d", s); | |
603 ASSERT_FALSE(p2.LookupHttpHeader(s, "nope")); | |
604 } | |
605 } |