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 }