| // Copyright 2019 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/traffic_annotation/network_traffic_annotation.h" |
| |
| #include "dummy_classes.h" |
| |
| // This file provides samples for testing the extractor.py script. |
| |
| namespace { |
| |
| net::NetworkTrafficAnnotationTag kTrafficAnnotation = |
| net::DefineNetworkTrafficAnnotation("id1", R"( |
| semantics { |
| sender: "sender1" |
| description: "desc1" |
| trigger: "trigger1" |
| data: "data1" |
| destination: GOOGLE_OWNED_SERVICE |
| } |
| policy { |
| cookies_allowed: NO |
| setting: "setting1" |
| chrome_policy { |
| SpellCheckServiceEnabled { |
| SpellCheckServiceEnabled: false |
| } |
| } |
| } |
| comments: "comment1")"); |
| } |
| |
| void TestAnnotations() { |
| net::PartialNetworkTrafficAnnotationTag partial_traffic_annotation = |
| net::DefinePartialNetworkTrafficAnnotation("id2", "completing_id2", R"( |
| semantics { |
| sender: "sender2" |
| description: "desc2" |
| trigger: "trigger2" |
| data: "data2" |
| destination: WEBSITE |
| })"); |
| |
| net::NetworkTrafficAnnotationTag completed_traffic_annotation = |
| net::CompleteNetworkTrafficAnnotation("id3", partial_traffic_annotation, |
| R"( |
| policy { |
| cookies_allowed: YES |
| cookie_store: "user" |
| setting: "setting3" |
| chrome_policy { |
| SpellCheckServiceEnabled { |
| SpellCheckServiceEnabled: false |
| } |
| } |
| } |
| comments: "comment3")"); |
| |
| net::NetworkTrafficAnnotationTag completed_branch_traffic_annotation = |
| net::BranchedCompleteNetworkTrafficAnnotation( |
| "id4", "branch4", partial_traffic_annotation, R"( |
| policy { |
| cookies_allowed: YES |
| cookie_store: "user" |
| setting: "setting4" |
| policy_exception_justification: "justification" |
| })"); |
| } |
| |
| void TestURLFetcherCreate() { |
| net::URLFetcherDelegate* delegate = nullptr; |
| net::URLFetcher::Create(GURL(), net::URLFetcher::RequestType::TEST_VALUE, |
| delegate); |
| |
| net::URLFetcher::Create(0, GURL(), net::URLFetcher::RequestType::TEST_VALUE, |
| delegate); |
| |
| net::URLFetcher::Create(GURL(), net::URLFetcher::RequestType::TEST_VALUE, |
| delegate, kTrafficAnnotation); |
| |
| net::URLFetcher::Create(0, GURL(), net::URLFetcher::RequestType::TEST_VALUE, |
| delegate, NO_TRAFFIC_ANNOTATION_YET); |
| |
| net::URLFetcher::Create(GURL(), net::URLFetcher::RequestType::TEST_VALUE, |
| delegate, TRAFFIC_ANNOTATION_FOR_TESTS); |
| |
| SetPartialNetworkTrafficAnnotation(PARTIAL_TRAFFIC_ANNOTATION_FOR_TESTS); |
| } |
| |
| void TestCreateRequest() { |
| net::URLRequest::Delegate* delegate = nullptr; |
| net::URLRequestContext context; |
| |
| context.CreateRequest(GURL(), net::RequestPriority::TEST_VALUE, delegate); |
| context.CreateRequest(GURL(), net::RequestPriority::TEST_VALUE, delegate, |
| kTrafficAnnotation); |
| } |
| |
| void TestInitList() { |
| net::NetworkTrafficAnnotationTag({-1}); |
| net::MutableNetworkTrafficAnnotationTag({-2}); |
| net::PartialNetworkTrafficAnnotationTag({-1}); |
| net::MutablePartialNetworkTrafficAnnotationTag({-2}); |
| int i = 0; |
| net::NetworkTrafficAnnotationTag({i}); |
| } |
| |
| void TestAssignment() { |
| net::MutableNetworkTrafficAnnotationTag tag1; |
| tag1.unique_id_hash_code = 1; |
| |
| net::MutablePartialNetworkTrafficAnnotationTag tag2; |
| tag2.unique_id_hash_code = 2; |
| |
| // Test if assignment to |unique_id_hash_code| of another structure is not |
| // caught. |
| struct something_else { |
| int unique_id_hash_code; |
| } x; |
| |
| x.unique_id_hash_code = 3; |
| } |
| |
| void TestMutableTags() { |
| SetAnnotationTagForSomething(CreateMutableNetworkTrafficAnnotationTag(3)); |
| } |
| |
| void DummyFunction(net::NetworkTrafficAnnotationTag traffic_annotation) {} |
| |
| void TestMacroExpansion() { |
| DummyFunction(NO_TRAFFIC_ANNOTATION_YET); |
| } |