blob: d05569657c7afca7a175e98c549701de84571e2a [file] [log] [blame]
Jonas Orelandbdcee282017-10-10 14:01:40 +02001/*
2 * Copyright 2017 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#ifndef P2P_BASE_TESTTURNCUSTOMIZER_H_
12#define P2P_BASE_TESTTURNCUSTOMIZER_H_
13
14#include "api/turncustomizer.h"
Jonas Orelandf0229762017-10-12 11:18:55 +020015#include "rtc_base/gunit.h"
Jonas Orelandbdcee282017-10-10 14:01:40 +020016#include "rtc_base/ptr_util.h"
17
18namespace cricket {
19
20class TestTurnCustomizer : public webrtc::TurnCustomizer {
21 public:
22 TestTurnCustomizer() {}
23 virtual ~TestTurnCustomizer() {}
24
25 enum TestTurnAttributeExtensions {
26 // Test only attribute
27 STUN_ATTR_COUNTER = 0xFF02 // Number
28 };
29
30 void MaybeModifyOutgoingStunMessage(
31 cricket::PortInterface* port,
32 cricket::StunMessage* message) override {
Steve Anton6c38cc72017-11-29 10:25:58 -080033 modify_cnt_++;
Jonas Orelandbdcee282017-10-10 14:01:40 +020034
Jonas Orelandf0229762017-10-12 11:18:55 +020035 ASSERT_NE(0, message->type());
Jonas Orelandbdcee282017-10-10 14:01:40 +020036 if (add_counter_) {
37 message->AddAttribute(rtc::MakeUnique<cricket::StunUInt32Attribute>(
38 STUN_ATTR_COUNTER, modify_cnt_));
39 }
40 return;
41 }
42
43 bool AllowChannelData(cricket::PortInterface* port,
44 const void* data,
45 size_t size,
46 bool payload) override {
47 allow_channel_data_cnt_++;
48 return allow_channel_data_;
49 }
50
51 bool add_counter_ = false;
52 bool allow_channel_data_ = true;
53 unsigned int modify_cnt_ = 0;
54 unsigned int allow_channel_data_cnt_ = 0;
55};
56
57} // namespace cricket
58
59#endif // P2P_BASE_TESTTURNCUSTOMIZER_H_