private void EventLogSink(IUPnPTestGroup sender, LogStruct log)
 {
     this.BeginInvoke(new UpdateLogForCurrentTestHandler(UpdateLogForCurrentTest), new object[] { sender, log });
 }
        private void AddTestGroupInTheList(IUPnPTestGroup test)
        {
            testgroups.Add(test);
            TreeNode cat = NodeTagSearch(UPnpTestRoot, test.Category);
            if (cat == null)
            {
                cat = new TreeNode(test.Category, 6, 7);
                cat.Tag = test.Category;
                UPnpTestRoot.Nodes.Add(cat);
                cat.Expand();
            }
            test.Enabled = true;
            TreeNode node = new TreeNode(test.GroupName, 8, 8);
            node.Tag = test;
            if (test.TestNames.Length > 0)
            {
                foreach (string TestName in test.TestNames)
                {
                    TreeNode snode = new TreeNode(TestName, 8, 8);
                    node.Nodes.Add(snode);
                }
                node.Expand();
            }
            cat.Nodes.Add(node);
            test.OnPacketTraceChanged += new PacketTraceHandler(OnPacketTraceChangedSink);
            test.OnProgressChanged += new System.EventHandler(OnProgressChangedSink);
            test.OnStateChanged += new System.EventHandler(OnStateChangedSink);
            test.OnEventLog += new LogEventHandler(EventLogSink);
            //test.OnLogChanged += new System.EventHandler(OnLogChangedSink);

            UpdateCounters();
        }
        private void UpdatePacketTraceForCurrentTest(IUPnPTestGroup sender, HTTPMessage msg)
        {
            if (sender != displaytestinfo) return;

            ListViewItem lv;
            if (msg.StatusCode == -1)
            {
                lv = new ListViewItem(new string[] { msg.RawPacket.Length.ToString() + " (" + msg.BodyBuffer.Length + ")", msg.Directive + " " + msg.DirectiveObj }, 5);
            }
            else
            {
                lv = new ListViewItem(new string[] { msg.RawPacket.Length.ToString() + " (" + msg.BodyBuffer.Length + ")", "(" + msg.StatusCode.ToString() + ") " + msg.StatusData }, 5);
            }
            lv.Tag = msg;
            packetListView.Items.Add(lv);
        }
        private void UpdateLogForCurrentTest(IUPnPTestGroup sender, LogStruct log)
        {
            if (sender != displaytestinfo) return;

            int icon = this.getImageIndexForLogImportance(log.importance);
            logListBox.Items.Add(new ListViewItem(new string[] { log.LogEntry }, icon));
        }
        private void SetTestInfo(IUPnPTestGroup test)
        {
            displaytestinfo = test;
            if (test == null)
            {
                descriptionTextBox.Text = "";
                resultTextBox.Text = "";
                testHeaderLabel.Text = "Test Summary";
                logListBox.Items.Clear();
                packetListView.Items.Clear();
                packetTextBox.Text = "";
                resetTestGroupButton.Enabled = false;
                execTestGroupButton.Enabled = false;
            }
            else
            {

                if (test.Enabled == false)
                {
                    resultTextBox.Text = "Test Group Skipped";
                }
                else
                {
                    string rs = "";
                    foreach (string ts in test.Result)
                    {
                        if (rs == "")
                        {
                            rs = ts;
                        }
                        else
                        {
                            rs = rs + "\r\n" + ts;
                        }
                    }
                    resultTextBox.Text = rs;
                }

                //if (test.Result == null || test.Result == "") resultTextBox.Text = "Results not available.";
                testHeaderLabel.Text = "Test Summary - " + test.GroupName;

                logListBox.Items.Clear();
                foreach (LogStruct ls in test.Log)
                {
                    int icon = getImageIndexForLogImportance(ls.importance);
                    logListBox.Items.Add(new ListViewItem(new string[] { ls.LogEntry }, icon));
                }

                //if (test.Log == null || test.Log == "") logTextBox.Text = "Test log not available.";
                packetListView.Items.Clear();
                packetTextBox.Text = "";
                foreach (HTTPMessage msg in test.PacketTrace)
                {
                    ListViewItem lv;
                    if (msg.StatusCode == -1)
                    {
                        lv = new ListViewItem(new string[] { msg.RawPacket.Length.ToString() + " (" + msg.BodyBuffer.Length + ")", msg.Directive + " " + msg.DirectiveObj }, 5);
                    }
                    else
                    {
                        lv = new ListViewItem(new string[] { msg.RawPacket.Length.ToString() + " (" + msg.BodyBuffer.Length + ")", "(" + msg.StatusCode.ToString() + ") " + msg.StatusData }, 5);
                    }
                    lv.Tag = msg;
                    packetListView.Items.Add(lv);
                }

                if (targetdevice != null)
                {
                    resetTestGroupButton.Enabled = true;
                    execTestGroupButton.Enabled = true;
                }
            }
        }
 private void OnPacketTraceChangedSink(IUPnPTestGroup sender, HTTPMessage packet)
 {
     this.BeginInvoke(new UpdatePacketTraceForCurrentTestHandler(UpdatePacketTraceForCurrentTest), new object[] { sender, packet });
 }